{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "authorship_tag": "ABX9TyNXOLGFN/9idWQBFcqfsJFl",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/dlsyscourse/public_notebooks/blob/main/21_generative_adversarial_networks_implementation.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Mpn1ti5Urdsv"
      },
      "source": [
        "# Lecture 21: Generative adversarial networks implementation\n",
        "\n",
        "In this lecture, we are going to implement a version of generative adversarial training in needle.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qXysoqn-vZuF"
      },
      "source": [
        "## Prepare the codebase\n",
        "\n",
        "To get started, please clone a version of needle repo from the github. You should be able to use the needle repo after finishng HW2"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "JjEIRTyr8ajf",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "1eae9650-aa90-4466-c7c6-c2b71ee07aec"
      },
      "source": [
        "# Code to set up the assignment\n",
        "from google.colab import drive\n",
        "drive.mount('/content/drive')\n",
        "%cd /content/drive/MyDrive/\n",
        "!mkdir -p 10714f22\n",
        "%cd /content/drive/MyDrive/10714f23\n",
        "# comment out the following line if you run it for the second time\n",
        "# as you already have a local copy of code\n",
        "# !git clone https://github.com/myrepo/needle lecture21\n",
        "!ln -s /content/drive/MyDrive/10714f23/lecture21 /content/needle"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n",
            "/content/drive/MyDrive\n",
            "/content/drive/MyDrive/10714f23\n",
            "Cloning into 'lecture21'...\n",
            "remote: Enumerating objects: 210, done.\u001b[K\n",
            "remote: Counting objects: 100% (59/59), done.\u001b[K\n",
            "remote: Compressing objects: 100% (45/45), done.\u001b[K\n",
            "remote: Total 210 (delta 17), reused 43 (delta 10), pack-reused 151\u001b[K\n",
            "Receiving objects: 100% (210/210), 11.28 MiB | 16.43 MiB/s, done.\n",
            "Resolving deltas: 100% (91/91), done.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DFxG3p3S1sBq"
      },
      "source": [
        "We can then run the following command to make the path to the package available in colab's environment as well as the PYTHONPATH."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bix8OXLuCOKt",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "219c286f-57e7-41f5-bea8-54c11cd9ced9"
      },
      "source": [
        "%set_env PYTHONPATH /content/needle/python:/env/python\n",
        "import sys\n",
        "sys.path.append(\"/content/needle/python\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "env: PYTHONPATH=/content/needle/python:/env/python\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BBIuE2jc1DaU"
      },
      "source": [
        "## Components of a generative advesarial network\n",
        "\n",
        "There are two main components in a generative adversarial network\n",
        "- A generator $G$ that takes a random vector $z$ and maps it to a generated(fake) data $G(z)$.\n",
        "- A discriminator that attempts to tell the difference between the real dataset and the fake one.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "T-1piPnmkMVg"
      },
      "source": [
        "![image.png]()"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_mBCkBtSa54H"
      },
      "source": [
        "import needle as ndl\n",
        "import numpy as np\n",
        "from needle import nn\n",
        "from matplotlib import pyplot as plt"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cbT1kk_4k6HE"
      },
      "source": [
        "### Parpare the training dataset\n",
        "\n",
        "For demonstration purpose, we create our \"real\" dataset as a two dimensional gaussian distribution.\n",
        "\n",
        "\\begin{equation}\n",
        "X \\sim \\mathcal{N}(u, \\Sigma), \\Sigma = A^T A\n",
        "\\end{equation}"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "qrIYM_PDbhFm"
      },
      "source": [
        "A = np.array([[1, 2], [-0.2, 0.5]])\n",
        "mu = np.array([2, 1])\n",
        "# total number of sample data to generated\n",
        "num_sample = 3200\n",
        "data = np.random.normal(0, 1, (num_sample, 2)) @ A + mu"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 448
        },
        "id": "3yDlolmEizvN",
        "outputId": "e10490ab-97b1-4d46-f70f-c071994dd1ac"
      },
      "source": [
        "plt.scatter(data[:,0], data[:,1], color=\"blue\", label=\"real data\")\n",
        "plt.legend()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7bcf9f5c64d0>"
            ]
          },
          "metadata": {},
          "execution_count": 4
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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3VDqhCovw+zbJ77XqwOrnq+BiIhSn9brdwsTxpRWzGo1rna2IPQ4OVdjxAgReIQGJNGWWJQCAHkmKFFyJZJScMSddImInI3LNBpoaZGeLLVLLpHH2WmzOO6kS0REanCZRqVY5b3yRVXvC72WJZdYZb522SyuslLkv4Qm4vp8IhBhWS8RUfrRev1mMKKCUt8MpcAgUXIABERfckmlHh12Co6IiMhY7DNiAKX+HUaVqNppySWaaPvfxMKddImIKBYmsKqQSDKpXoqKgOHD7TerEG3pxesVOSJqgyTOlhAREcBgRJVEk0n1kmxVi95i5c/IzdjUzNroEcwQEVF6YM6ICskmk6YTPfJnzE4GJiIiczFnxAAsUQ1KNn8mkc6yRESU3hiMqJRMMqmWRE+7SzZ/xqpkYCIisi/mjGiQSDJpuuVGJJs/Y2UyMBER2RODEY20JJPqkehpN8m2eLc6GZiIiOyHyzQGSdfciGTzZ+RgJvKxoc/h83G/GiIiJ2EwYpB0zo1IJn+GycBERBSJwYhB0j03oqgI2L8fqKoCysvF13371C072b2zLBERmYs5IwZxQm5EMs3Y7NpZloiIzMdgxCDJJno6gd06yxIRkTW4TGMQ5kYQERGpw2DEQMyNICIiUsZlGoMxN4KIiCg+BiMmYG4EERFRbIYu0/zpT39C//790bp1a7Rv3x533HGHkacjIiKiFGTYzEhFRQUmTJiAZ599FjfeeCMuXLiAL7/80qjTpYxAgEs2REREoQwJRi5cuICpU6di3rx5eOCBB5ru7927txGnSxnptmkeERGRHgxZpvn8889RW1uLjIwMXH311ejUqRNuvfVWxZmRhoYG1NfXh93ShbxpXmSLeHnTvMpKa8ZFRERkNUOCkW+++QYAMHv2bDz55JN466230L59ewwePBgnT56M+biysjLk5uY23Xw+nxHDM126bppHRESkB03ByMyZM+FyueLevv76azQ2NgIAnnjiCdx5553o27cvli9fDpfLhQ0bNsR8/lmzZsHv9zfdampqknt1NpHOm+YRERElS1POyGOPPYZx48bFPaZ79+44/D+7v4XmiGRlZaF79+44cOBAzMdmZWUhKytLy5BSQrpvmkdERJQMTcGIx+OBx+NRPK5v377IysrCrl27cP311wMAzp8/j/3796Nbt26JjTSFOWHTPCIiokQZUk2T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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nz4nFUT8m0wO"
      },
      "source": [
        "Our goal is to create a generator that can generate a distribution that matches this distribution."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1InC1BAQnC6l"
      },
      "source": [
        "### Generator network $G$\n",
        "\n",
        "Now we are ready to build our generator network G, to keep things simple, we make generator an one layer linear neural network."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "7MPePSoJm_YW"
      },
      "source": [
        "model_G = nn.Sequential(nn.Linear(2, 2))"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ibevU5pCnStH"
      },
      "source": [
        "def sample_G(model_G, num_samples):\n",
        "    Z = ndl.Tensor(np.random.normal(0, 1, (num_samples, 2)).astype(\"float32\"))\n",
        "    fake_X = model_G(Z)\n",
        "    return fake_X.numpy()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2cifleRqj-j2"
      },
      "source": [
        "fake_data_init = sample_G(model_G, 3200)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 448
        },
        "id": "n-ZhutLVkGgU",
        "outputId": "6f788bb9-86e3-499d-8cbd-5532a5cfb583"
      },
      "source": [
        "plt.scatter(data[:,0], data[:,1], color=\"blue\", label=\"real data\")\n",
        "plt.scatter(fake_data_init[:,0], fake_data_init[:,1], color=\"red\", label=\"G(z) at init\")\n",
        "plt.legend()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7bcf9c0946a0>"
            ]
          },
          "metadata": {},
          "execution_count": 8
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGdCAYAAADaPpOnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB6FUlEQVR4nO2deXxU5b3/P5OBsBgSyDBsmWAErdqqrXWrWCRUK11UNCAKbnhbKFdUgoJbuULUilU0Qb1a6c+itxgwkFi8ba9LMLFxqQvV1r2CICEGCKBhk2Bmnt8fx5PMTM7ynG3Wz/v1el6QM2d5zpk55/mc7/NdfEIIAUIIIYSQNCEn2R0ghBBCCLECxQshhBBC0gqKF0IIIYSkFRQvhBBCCEkrKF4IIYQQklZQvBBCCCEkraB4IYQQQkhaQfFCCCGEkLSiV7I74DaRSASff/45BgwYAJ/Pl+zuEEIIIUQCIQT27t2LESNGICfH2LaSceLl888/R3FxcbK7QQghhBAbNDc3IxQKGa6TceJlwIABAJSTz8/PT3JvCCGEECLDnj17UFxc3DWOG5Fx4kWdKsrPz6d4IYQQQtIMGZcPOuwSQgghJK2geCGEEEJIWkHxQgghhJC0IuN8XmQQQqCzsxPhcDjZXSEe4ff70atXL4bLE0JIBpJ14uXQoUNobW3FgQMHkt0V4jH9+/fH8OHDkZubm+yuEEIIcZGsEi+RSASbNm2C3+/HiBEjkJubyzfzDEQIgUOHDqGtrQ2bNm3CUUcdZZrwiBBCSPqQVeLl0KFDiEQiKC4uRv/+/ZPdHeIh/fr1Q+/evfHZZ5/h0KFD6Nu3b7K7RAghxCWy8nWUb+HZAb9nQgjJTLLK8kIIIYQQ+4TDQFMT0NoKDB8OjB0L+P2J7wfFCyGEEEJMqasD5swBtm7tXhYKAUuXAmVlie0L7epZzubNm+Hz+fDOO+9Y2q6kpARVVVWe9IkQQkhqUVcHTJ4cK1wAoKVFWV5Xl9j+ULyQhPD4449j4MCBye4GIYQQi4TDisVFiJ6fqcvKy5X1EgXFi03CYaCxEVi5Uvk30fnuDh06lNgDEkIIyUqamnpaXKIRAmhuVtZLFBQvNqirA0pKgPHjgWnTlH9LSrw1m5WWluKaa65BeXk5Bg8ejAkTJgAA3nvvPfz0pz9FXl4ehg4dissvvxw7d+7s2u7ZZ5/FD3/4QwwcOBCBQADnnnsuNm7caOnYO3bswHnnnYd+/frhiCOOwJNPPtljnfvvvx/HH388DjvsMBQXF+Pqq6/Gvn37AACNjY246qqr0N7eDp/PB5/Ph0WLFgEA/vjHP+Lkk0/GgAEDMGzYMEybNg07duyweZUIIYS4TWuru+u5AcWLRZI57/fEE08gNzcXr7zyCn73u9/hyy+/xI9+9COceOKJeOutt/Dss89i+/btmDJlStc2+/fvx/XXX4+33noL69atQ05ODi688EJEIhHp406fPh3Nzc1oaGjAmjVr8PDDD/cQGDk5OXjggQfw/vvv44knnsCLL76IG2+8EQAwZswYVFVVIT8/H62trWhtbcW8efMAAF9//TXuuOMO/POf/8Sf/vQnbN68GdOnT3d+sQghhLjC8OHurucKIsNob28XAER7e3uPz7766ivxwQcfiK+++srWvjs7hQiFhFCMZD2bzydEcbGyntuMGzdOnHjiiTHL7rjjDnHOOefELGtubhYAxMcff6y5n7a2NgFAvPvuu0IIITZt2iQAiLfffltz/Y8//lgAEG+88UbXsg8//FAAEJWVlbr9Xb16tQgEAl1/L1++XBQUFBicocKbb74pAIi9e/earmuG0++bEEJI99jn83k79hmN3/HQ8mKBZM/7nXTSSTF///Of/0RDQwPy8vK62jHHHAMAXVNDn3zyCaZOnYpRo0YhPz8fJSUlAIAtW7ZIHfPDDz9Er169Yo59zDHH9HC+ra+vx1lnnYWioiIMGDAAl19+OXbt2mVaQ2r9+vU477zzMHLkSAwYMADjxo2z1D9CCCHe4vcr4dAAEF9RR/27qiqx+V4oXiyQ7Hm/ww47LObvffv24bzzzsM777wT0z755BOceeaZAIDzzjsPu3fvxu9//3u8/vrreP311wG46/C7efNmnHvuuTjhhBNQW1uL9evX47//+79Nj7N//35MmDAB+fn5ePLJJ/Hmm2/i6aefdr1/hBBCnFFWBqxZAxQVxS4PhZTlic7zwiR1Fki1eb/vf//7qK2tRUlJCXr16vlV7tq1Cx9//DF+//vfY+zYsQCAl19+2dIxjjnmGHR2dmL9+vU45ZRTAAAff/wxvvzyy6511q9fj0gkgvvuu68rJX9NTU3MfnJzcxGOC8n66KOPsGvXLtx9990oLi4GALz11luW+kcIISQxlJUBEyem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AsN1fEJG4qQRkUgEn3/+OQYMGACfz5fs7iSNPXv2oLi4GM3NzcjPz092d9IeXk934fV0F15Pd+H1dBfZ6ymEwN69ezFixAjk5Bh7tWSc5SUnJwehUCjZ3UgZ8vPzefO5CK+nu/B6uguvp7vwerqLzPU0s7io0GGXEEIIIWkFxQshhBBC0gqKlwylT58+WLhwIfr06ZPsrmQEvJ7uwuvpLrye7sLr6S5eXM+Mc9glhBBCSGZDywshhBBC0gqKF0IIIYSkFRQvhBBCCEkrKF4IIYQQklZQvGQRHR0d+N73vgefz4d33nkn2d1JSzZv3oxf/OIXOOKII9CvXz+MHj0aCxcuxKFDh5LdtbThv//7v1FSUoK+ffvitNNOwxtvvJHsLqUtixcvximnnIIBAwZgyJAhuOCCC/Dxxx8nu1sZwd133w2fz4fy8vJkdyWtaWlpwWWXXYZAIIB+/frh+OOPx1tvveV4vxQvWcSNN96IESNGJLsbac1HH32ESCSCRx99FO+//z4qKyvxu9/9Drfeemuyu5YWPPXUU7j++uuxcOFC/OMf/8B3v/tdTJgwATt27Eh219KSl156CbNnz8bf//53vPDCC/j6669xzjnnYP/+/cnuWlrz5ptv4tFHH8UJJ5yQ7K6kNV988QXOOOMM9O7dG//3f/+HDz74APfddx8GDRrkfOeCZAV//etfxTHHHCPef/99AUC8/fbbye5SxnDPPfeII444ItndSAtOPfVUMXv27K6/w+GwGDFihFi8eHESe5U57NixQwAQL730UrK7krbs3btXHHXUUeKFF14Q48aNE3PmzEl2l9KWm266Sfzwhz/0ZN+0vGQB27dvx4wZM/DHP/4R/fv3T3Z3Mo729nYUFhYmuxspz6FDh7B+/XqcffbZXctycnJw9tln47XXXktizzKH9vZ2AODv0QGzZ8/Gz3/+85jfKbHHM888g5NPPhkXXXQRhgwZghNPPBG///3vXdk3xUuGI4TA9OnTMWvWLJx88snJ7k7GsWHDBjz44IP41a9+leyupDw7d+5EOBzG0KFDY5YPHToU27ZtS1KvModIJILy8nKcccYZOO6445LdnbRk1apV+Mc//oHFixcnuysZwaeffopHHnkERx11FJ577jn853/+J6677jo88cQTjvdN8ZKm3HzzzfD5fIbto48+woMPPoi9e/filltuSXaXUxrZ6xlNS0sLfvKTn+Ciiy7CjBkzktRzQhRmz56N9957D6tWrUp2V9KS5uZmzJkzB08++ST69u2b7O5kBJFIBN///vdx11134cQTT8TMmTMxY8YM/O53v3O8714u9I8kgRtuuAHTp083XGfUqFF48cUX8dprr/WoKXHyySfj0ksvdUUBZwKy11Pl888/x/jx4zFmzBgsW7bM495lBoMHD4bf78f27dtjlm/fvh3Dhg1LUq8yg2uuuQZ//vOf8be//Q2hUCjZ3UlL1q9fjx07duD73/9+17JwOIy//e1veOihh9DR0QG/35/EHqYfw4cPx7e//e2YZcceeyxqa2sd75viJU0JBoMIBoOm6z3wwAO48847u/7+/PPPMWHCBDz11FM47bTTvOxiWiF7PQHF4jJ+/HicdNJJWL58OXJyaMCUITc3FyeddBLWrVuHCy64AIDyZrZu3Tpcc801ye1cmiKEwLXXXounn34ajY2NOOKII5LdpbTlrLPOwrvvvhuz7KqrrsIxxxyDm266icLFBmeccUaP0P1///vfOPzwwx3vm+Ilwxk5cmTM33l5eQCA0aNH8w3NBi0tLSgtLcXhhx+OJUuWoK2treszWg/Muf7663HllVfi5JNPxqmnnoqqqirs378fV111VbK7lpbMnj0b1dXVWLt2LQYMGNDlO1RQUIB+/foluXfpxYABA3r4Ch122GEIBAL0IbLJ3LlzMWbMGNx1112YMmUK3njjDSxbtswVazXFCyEWeOGFF7BhwwZs2LChh/gTLNBuysUXX4y2tjbcdttt2LZtG773ve/h2Wef7eHES+R45JFHAAClpaUxy5cvX246DUqI15xyyil4+umnccstt+D222/HEUccgaqqKlx66aWO9+0TfOISQgghJI3gZD0hhBBC0gqKF0IIIYSkFRQvhBBCCEkrKF4IIYQQklZQvBBCCCEkraB4IYQQQkhaQfFCCCGEkLSC4oUQQgghaQXFCyGEEELSCooXQgghhKQVFC+EEEIISSsoXgghhBCSVvx/1TfWlPrP8FgAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KVNer3vnpDxm"
      },
      "source": [
        "At the initialization phase, we just randomly initialized the weight of $G$, as a result, it certainly does not match the training data. Our goal is to setup a generative adveserial training to get it to close to the training data."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MsI-zBsgp9tC"
      },
      "source": [
        "### Discriminator $D$\n",
        "\n",
        "Now let us build a discriminator network $D$ that classifies the real data from the fake one. Here we use a three layer neural network. Additionally, we make use of the Softmax loss to measure the classification likelihood. Because we are only classifying two classes. Softmax function becomes the sigmoid function for prediction.\n",
        "\n",
        "\\begin{equation}\n",
        "    \\frac{\\exp(x)} {\\exp(x) +\\exp(y)} =\\frac{1}{1 + exp(y-x)}\n",
        "\\end{equation}\n",
        "\n",
        "We simply reuse SoftmaxLoss here since this is readily available in our current set of homework iterations. Most implementation will use a binary classification closs instead (BCELoss)."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oettjmbLp9a8"
      },
      "source": [
        "model_D = nn.Sequential(\n",
        "    nn.Linear(2, 20),\n",
        "    nn.ReLU(),\n",
        "    nn.Linear(20, 10),\n",
        "    nn.ReLU(),\n",
        "    nn.Linear(10, 2)\n",
        ")\n",
        "loss_D = nn.SoftmaxLoss()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "AtcTUZertq3D"
      },
      "source": [
        "## Generative advesarial training\n",
        "\n",
        "A Generative adversarial training process iteratively update the generator $G$ and discriminator $D$ to play a \"minimax\" game.\n",
        "\n",
        "\\begin{equation}\n",
        "    \\min_D\\max_G\\{-E_{x\\sim Data} \\log D(x) - E_{z\\sim Noise} \\log(1- D(G(z))\\}\n",
        "\\end{equation}\n",
        "\n",
        "Note that however, in practice, the $G$ update step usually use an alternative objective function.\n",
        "\n",
        "\\begin{equation}\n",
        "    \\min_G \\{-E_{z\\sim{Noise}} \\log(D(G(z))\\}\n",
        "\\end{equation}\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "mwzkIy2VsxZe"
      },
      "source": [
        "### Generator update\n",
        "\n",
        "Now we are ready to setup the generator update. In the generator update step, we need to optimize the following goal:\n",
        "\n",
        "\\begin{equation}\n",
        "    \\min_G \\{-E_{z\\sim{Noise}} \\log(D(G(z))\\}\n",
        "\\end{equation}\n",
        "\n",
        "Let us first setup an optimizer for G's parameters.\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "DFEqvNyJpEcP"
      },
      "source": [
        "opt_G = ndl.optim.Adam(model_G.parameters(), lr=0.01)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fCJtUQFUu-mo"
      },
      "source": [
        "\n",
        "![image.png]()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fexOFSSZvjRu"
      },
      "source": [
        "To optimize the above loss function, we just need to generate a fake data $G(z)$, send it through the discriminator $D$ and compute the negative log-likelihood that the fake dataset is categorized as real. In another word, we will feed in $y= 1$ as label here.\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NhPHESKKpCoA"
      },
      "source": [
        "def update_G(Z, model_G, model_D, loss_D, opt_G):\n",
        "    fake_X = model_G(Z)\n",
        "    fake_Y = model_D(fake_X)\n",
        "    batch_size = Z.shape[0]\n",
        "    ones = ndl.ones(batch_size, dtype=\"int32\")\n",
        "    loss = loss_D(fake_Y, ones)\n",
        "    loss.backward()\n",
        "    opt_G.step()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9Qsn3cFwv-f5"
      },
      "source": [
        "### Discriminator update\n",
        "\n",
        "Now, let us also setup the discriminator update step. The discriminator step optimizes the following objective:\n",
        "\n",
        "\\begin{equation}\n",
        "    \\min_D\\{-E_{x\\sim Data} \\log D(x) - E_{z\\sim Noise} \\log(1- D(G(z))\\}\n",
        "\\end{equation}\n",
        "\n",
        "Let us first setup an optimizer to learn $D$'s parameters."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WOf4qlOvv-JV"
      },
      "source": [
        "opt_D = ndl.optim.Adam(model_D.parameters(), lr=0.01)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WfBh-6Adwnw9"
      },
      "source": [
        "![image.png]()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "c3gqNBcnxCF0"
      },
      "source": [
        "The discriminator loss is also a normal classification loss, by labeling the generated data as $y=0$(fake) and real data as $y=1$(real). Importantly, we also do not need to propagate gradient back to the generator in discriminator update, so we will use the detach function to stop the gradient propagation.\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "H4RwEfQ4nluL"
      },
      "source": [
        "def update_D(X, Z, model_G, model_D, loss_D, opt_D):\n",
        "    fake_X = model_G(Z).detach()\n",
        "    fake_Y = model_D(fake_X)\n",
        "    real_Y = model_D(X)\n",
        "    assert X.shape[0] == Z.shape[0]\n",
        "    batch_size = X.shape[0]\n",
        "    ones = ndl.ones(batch_size, dtype=\"int32\")\n",
        "    zeros = ndl.zeros(batch_size, dtype=\"int32\")\n",
        "    loss = loss_D(real_Y, ones) + loss_D(fake_Y, zeros)\n",
        "    loss.backward()\n",
        "    opt_D.step()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "S-0El6XyyPNe"
      },
      "source": [
        "## Putting it together\n",
        "Now we can put it together, to summarize, the generative adverserial training cycles through the following steps:\n",
        "- The discriminator update step\n",
        "- Generator update step"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "EeF1zzALyO83"
      },
      "source": [
        "def train_gan(data, batch_size, num_epochs):\n",
        "    assert data.shape[0] % batch_size == 0\n",
        "    for epoch in range(num_epochs):\n",
        "        begin = (batch_size * epoch) % data.shape[0]\n",
        "        X = data[begin: begin+batch_size, :]\n",
        "        Z = np.random.normal(0, 1, (batch_size, 2))\n",
        "        X = ndl.Tensor(X, dtype=\"float32\")\n",
        "        Z = ndl.Tensor(Z, dtype=\"float32\")\n",
        "        update_D(X, Z, model_G, model_D, loss_D, opt_D)\n",
        "        update_G(Z, model_G, model_D, loss_D, opt_G)\n",
        "\n",
        "train_gan(data, 32, 2000)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KCqCAuzazp8B"
      },
      "source": [
        "We can plot the generated data of the trained generator after a number of iterations. As we can see, the generated dataset $G(z)$ after get closer to the real data after training."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 448
        },
        "id": "2gWdtbKEs1vW",
        "outputId": "fbe2833e-65d8-44f1-ec91-9b7b41d39d37"
      },
      "source": [
        "fake_data_trained = sample_G(model_G, 3200)\n",
        "\n",
        "plt.scatter(data[:,0], data[:,1], color=\"blue\", label=\"real data\")\n",
        "plt.scatter(fake_data_init[:,0], fake_data_init[:,1], color=\"red\", label=\"G(z) at init\")\n",
        "plt.scatter(fake_data_trained[:,0], fake_data_trained[:,1], color=\"pink\", label=\"G(z) trained\")\n",
        "\n",
        "plt.legend()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7bcf78d230a0>"
            ]
          },
          "metadata": {},
          "execution_count": 15
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "prU6W4Hd19pj"
      },
      "source": [
        "### Inspect the trained generator\n",
        "\n",
        "We can compare the weight/bias of trained generator $G$ to the parameters we use to genrate the dataset. Importantly, we need to compare the covariance $\\Sigma= A^T A$ here instead of the transformation matrix."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Jcnu6eCgtR0Y"
      },
      "source": [
        "gA, gmu = model_G.parameters()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ZwnY5BWTtdP1",
        "outputId": "8c16a97b-81ad-426f-a30d-caf734d3798a"
      },
      "source": [
        "A.T @A"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[1.04, 1.9 ],\n",
              "       [1.9 , 4.25]])"
            ]
          },
          "metadata": {},
          "execution_count": 17
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "EV8e1ov5tlkM",
        "outputId": "f18d159b-7ffd-47ab-d4c2-be82ee3be643"
      },
      "source": [
        "gA = gA.numpy()\n",
        "gA.T @ gA"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[1.0487837, 1.9050138],\n",
              "       [1.9050138, 4.3002977]], dtype=float32)"
            ]
          },
          "metadata": {},
          "execution_count": 18
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "QwYq79Pkt1FV",
        "outputId": "3538e67c-521d-4a10-ab6f-1ad8fff85083"
      },
      "source": [
        "A"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[ 1. ,  2. ],\n",
              "       [-0.2,  0.5]])"
            ]
          },
          "metadata": {},
          "execution_count": 19
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Htjcsj4vt2L-",
        "outputId": "e71f0c21-1a0b-460f-cf9e-1f4f4d79f109"
      },
      "source": [
        "gA"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[-0.27900007,  0.375084  ],\n",
              "       [-0.9853642 , -2.0395122 ]], dtype=float32)"
            ]
          },
          "metadata": {},
          "execution_count": 20
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "7K_sWQEI2Wlk"
      },
      "source": [
        "We can also compare the mean"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "00oNrAke2bc4",
        "outputId": "60ba63d3-81ec-497d-ceda-36d708a2c318"
      },
      "source": [
        "gmu, mu"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(needle.Tensor([[2.082873   0.87884533]]), array([2, 1]))"
            ]
          },
          "metadata": {},
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0HKfa2d_0EtO"
      },
      "source": [
        "## Modularizing GAN \"Loss\"\n",
        "\n",
        "We can modularize GAN step as in a similar way as loss function. The following codeblock shows one way to do so."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "L0EolNkR_XeQ"
      },
      "source": [
        "class GANLoss:\n",
        "    def __init__(self, model_D, opt_D):\n",
        "        self.model_D = model_D\n",
        "        self.opt_D = opt_D\n",
        "        self.loss_D = nn.SoftmaxLoss()\n",
        "\n",
        "    def _update_D(self, real_X, fake_X):\n",
        "        real_Y = self.model_D(real_X)\n",
        "        fake_Y = self.model_D(fake_X.detach())\n",
        "        batch_size = real_X.shape[0]\n",
        "        ones = ndl.ones(batch_size, dtype=\"int32\")\n",
        "        zeros = ndl.zeros(batch_size, dtype=\"int32\")\n",
        "        loss = self.loss_D(real_Y, ones) + self.loss_D(fake_Y, zeros)\n",
        "        loss.backward()\n",
        "        self.opt_D.step()\n",
        "\n",
        "    def forward(self, fake_X, real_X):\n",
        "        self._update_D(real_X, fake_X)\n",
        "        fake_Y = self.model_D(fake_X)\n",
        "        batch_size = real_X.shape[0]\n",
        "        ones = ndl.ones(batch_size, dtype=\"int32\")\n",
        "        loss = self.loss_D(fake_Y, ones)\n",
        "        return loss\n"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yXQZw5NwAosQ"
      },
      "source": [
        "model_G = nn.Sequential(nn.Linear(2, 2))\n",
        "opt_G = ndl.optim.Adam(model_G.parameters(), lr = 0.01)\n",
        "\n",
        "model_D = nn.Sequential(\n",
        "    nn.Linear(2, 20),\n",
        "    nn.ReLU(),\n",
        "    nn.Linear(20, 10),\n",
        "    nn.ReLU(),\n",
        "    nn.Linear(10, 2)\n",
        ")\n",
        "opt_D = ndl.optim.Adam(model_D.parameters(), lr=0.01)\n",
        "gan_loss = GANLoss(model_D, opt_D)\n",
        "\n",
        "\n",
        "def train_gan(data, batch_size, num_epochs):\n",
        "    assert data.shape[0] % batch_size == 0\n",
        "    for epoch in range(num_epochs):\n",
        "        begin = (batch_size * epoch) % data.shape[0]\n",
        "        X = data[begin: begin+batch_size, :]\n",
        "        Z = np.random.normal(0, 1, (batch_size, 2))\n",
        "        X = ndl.Tensor(X, dtype=\"float32\")\n",
        "        Z = ndl.Tensor(Z, dtype=\"float32\")\n",
        "        fake_X = model_G(Z)\n",
        "        loss = gan_loss.forward(fake_X, X)\n",
        "        loss.backward()\n",
        "        opt_G.step()\n",
        "\n",
        "train_gan(data, 32, 2000)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 448
        },
        "id": "eYNLN08VxzzL",
        "outputId": "0271a86f-d09c-4068-fa0a-8bc40220b6b9"
      },
      "source": [
        "fake_data_trained = sample_G(model_G, 3200)\n",
        "\n",
        "plt.scatter(data[:,0], data[:,1], color=\"blue\", label=\"real data\")\n",
        "plt.scatter(fake_data_init[:,0], fake_data_init[:,1], color=\"red\", label=\"G(z) at init\")\n",
        "plt.scatter(fake_data_trained[:,0], fake_data_trained[:,1], color=\"pink\", label=\"G(z) trained\")\n",
        "\n",
        "plt.legend()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7bcf78fb8700>"
            ]
          },
          "metadata": {},
          "execution_count": 24
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGdCAYAAADaPpOnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACcRElEQVR4nO2deXgUVdbG3+omYU0CWQghCQYQBRUERUWYSFBGnHGJhEURRVBBRkAC4oIi6yguLEFwAT8FR2QniKMzjAIJRlFBFBFBhEgMCSE7CSCE0F3fHzeV9FLLre7qNef3PP0k6a7ldqW76q1zz3mPIIqiCIIgCIIgiADB5OsBEARBEARB6IHEC0EQBEEQAQWJF4IgCIIgAgoSLwRBEARBBBQkXgiCIAiCCChIvBAEQRAEEVCQeCEIgiAIIqAg8UIQBEEQREDRxNcDMBqr1YqTJ08iLCwMgiD4ejgEQRAEQXAgiiLOnDmD9u3bw2RSj60EnXg5efIkEhMTfT0MgiAIgiBc4MSJE0hISFBdJujES1hYGAD25sPDw308GoIgCIIgeKiurkZiYmL9dVyNoBMv0lRReHg4iReCIAiCCDB4Uj4oYZcgCIIgiICCxAtBEARBEAEFiReCIAiCIAKKoMt54UEURVy6dAkWi8XXQyF8TEhICMxms6+HQRAEQeig0YmXixcvoqioCH/++aevh0L4AYIgICEhAa1atfL1UAiCIAhOGpV4sVqtOH78OMxmM9q3b4/Q0FAysmvEiKKI0tJSFBQUoEuXLhSBIQiCCBAalXi5ePEirFYrEhMT0aJFC18Ph/ADYmJikJeXh9raWhIvBEEQAUKjTNjVsh0mGg8UeSMIggg8GlXkhSAIgiAI17FYgJwcoKgIiIsDkpMBXwStSbwQBEEQBKFJZiYweTJQUNDwXEICsGQJkJbm3bHQ/EkjJy8vD4IgYP/+/brWS0pKQkZGhkfGRBAEQfgXmZnA0KH2wgUACgvZ85mZ3h0PiRfCK6xatQqtW7f29TAIgiAInVgsLOIiis6vSc+lp7PlvAWJFxexWIDsbGDtWvbT2353Fy9e9O4OCYIgiEZJTo5zxMUWUQROnGDLeQsSLy6QmQkkJQEDBgAPPMB+JiV5NmyWkpKCiRMnIj09HdHR0Rg0aBAA4ODBg/jb3/6GVq1aITY2Fg899BDKysrq19u2bRv+8pe/oHXr1oiKisJdd92F3NxcXfsuKSnB3XffjebNm6Njx4746KOPnJZZtGgRunfvjpYtWyIxMRFPPPEEzp49CwDIzs7GmDFjUFVVBUEQIAgCZs+eDQD48MMP0bt3b4SFhaFdu3Z44IEHUFJS4uJRIgiCIIymqMjY5YyAxItOfDnv98EHHyA0NBRff/013nnnHZw+fRq33norevXqhe+//x7btm1DcXExhg8fXr/OuXPnMHXqVHz//ffYsWMHTCYTBg8eDKvVyr3f0aNH48SJE8jKysKmTZvw1ltvOQkMk8mEN954A7/88gs++OAD7Ny5E8888wwAoG/fvsjIyEB4eDiKiopQVFSEadOmAQBqa2sxb948/PTTT/j444+Rl5eH0aNHu3+wCIIgCEOIizN2OUMQg4yqqioRgFhVVeX02vnz58VDhw6J58+fd2nbly6JYkKCKLIgmfNDEEQxMZEtZzT9+/cXe/XqZffcvHnzxNtvv93uuRMnTogAxCNHjshup7S0VAQg/vzzz6IoiuLx48dFAOKPP/4ou/yRI0dEAOKePXvqnzt8+LAIQFy8eLHieDdu3ChGRUXV/71y5UoxIiJC5R0y9u7dKwIQz5w5o7msEbj7mSAIggh2pGufIHj22qd2/XaEIi868PW83/XXX2/3908//YSsrCy0atWq/tG1a1cAqJ8aOnr0KEaMGIFOnTohPDwcSUlJAID8/HyufR4+fBhNmjSx23fXrl2dkm+3b9+O2267DfHx8QgLC8NDDz2E8vJyzR5S+/btw913340OHTogLCwM/fv31zU+giAIwrOYzawcGgAcfT2lvzMyvOv3QuJFB76e92vZsqXd32fPnsXdd9+N/fv32z2OHj2KW265BQBw9913o6KiAu+++y6+++47fPfddwCMTfjNy8vDXXfdhR49emDz5s3Yt28f3nzzTc39nDt3DoMGDUJ4eDg++ugj7N27F1u2bDF8fARBEIR7pKUBmzYB8fH2zycksOe97fNCJnU68Ld5v+uuuw6bN29GUlISmjRx/leWl5fjyJEjePfdd5GcnAwA+Oqrr3Tto2vXrrh06RL27duHG264AQBw5MgRnD59un6Zffv2wWq1YuHChfWtFzZs2GC3ndDQUFgcSrJ+/fVXlJeX45VXXkFiYiIA4Pvvv9c1PoIgCMI7pKUBqan+4bBLkRcdJCczlanUDkcQgMREtpw3mDBhAioqKjBixAjs3bsXubm5+N///ocxY8bAYrGgTZs2iIqKwooVK3Ds2DHs3LkTU6dO1bWPK6+8EnfccQcef/xxfPfdd9i3bx8ee+wxNG/evH6Zyy+/HLW1tVi6dCl+//13fPjhh3jnnXfstpOUlISzZ89ix44dKCsrw59//okOHTogNDS0fr1PPvkE8+bNM+TYEARBEMZjNgMpKcCIEeynr/rZknjRgb/N+7Vv3x5ff/01LBYLbr/9dnTv3h3p6elo3bo1TCYTTCYT1q1bh3379uGaa67BlClT8Prrr+vez8qVK9G+fXv0798faWlpGDduHNq2bVv/+rXXXotFixbh1VdfxTXXXIOPPvoI8+fPt9tG3759MX78eNx3332IiYnBa6+9hpiYGKxatQobN27EVVddhVdeeQULFixw+7gQBEEQwY0ginKeeYFLdXU1IiIiUFVVhfDwcLvXLly4gOPHj6Njx45o1qyZy/uQ6++QmMiEi7fn/Qj3MOozQRAEQbiH2vXbEcp5cQF/mvcjCIIgiMYGiRcXkeb9CIIgCILwLpTzQhAEQRBEQEHihSAIgiCIgILEC0EQBEEQAQWJF4IgCIIgAgpK2CUIgiCIYEYUgaozwMVaIDQEiAhTdlsNEEi8EARBEESwUloJHMtnwkUiNAS4vAMQ08Z343ITmjYiCIIgiGCktBI4lGsvXAD296FcoLTCN+MyABIvQcqOHTvQrVs3p2aIcpSVlaFt27YosLUM9jBJSUnIyMjgXj47OxuCINg1hCQIgiAUEEUWcVHj0O9ASWAKGI+Kl6SkJAiC4PSYMGGC7PKrVq1yWtZvLdstFiA7G1i7lv3kEAnucurUKUyePBmXX345mjVrhtjYWPTr1w9vv/02/vzzT7tln3nmGcyYMQNmDtvf6OhojBo1CrNmzXJ7jCkpKUhPT9dcbu/evRg3bhz3dvv27YuioiJEREQAYJ+V1q1buzhKgiCIIEMUgdPVQEk5+3m62jniIsfh31mEJsDwaM7L3r177e78Dx48iL/+9a8YNmyY4jrh4eE4cuRI/d+CPyYVyTU3SkhgXRs91Nzo999/R79+/dC6dWu8/PLL6N69O5o2bYqff/4ZK1asQHx8PO655x4AwFdffYXc3FwMGTKEe/tjxozB9ddfj9dffx2RkZEeeQ+2xMTE6Fo+NDQU7dq189BoCIIgAgzbJNw/LwBFZfZipYmOfjW5+UB064BK4vVo5CUmJgbt2rWrf3z66afo3Lkz+vfvr7iOIAh268TGxnpyiPrJzASGDrUXLgBQWMiez8z0yG6feOIJNGnSBN9//z2GDx+Obt26oVOnTkhNTcVnn32Gu+++u37ZdevW4a9//atd1EopCiZx9dVXo3379tiyZYviGMrLyzFixAjEx8ejRYsW6N69O9auXVv/+ujRo7Fr1y4sWbKkfvt5eXmy23KcNhIEAf/3f/+HwYMHo0WLFujSpQs++eST+tdtp42ys7MxZswYVFVV1e9n9uzZOo4mQRCEB3CMfniq73FpJfDtAeCn34DDx4E/ipyjLJd0zAbU1DIhFEB4Lefl4sWLWL16NR555BHVaMrZs2dx2WWXITExEampqfjll1+8NURtLBYWcZH7QErPpacbPoVUXl6Ozz//HBMmTEDLli1ll7E9pjk5Oejdu7fd63v37kVRURGKiopQUFCAPn36IDk52W6ZG2+8ETk5OYrjuHDhAq6//np89tlnOHjwIMaNG4eHHnoIe/bsAQAsWbIEN998M8aOHVu/r8TERO73OWfOHAwfPhwHDhzA3//+d4wcORIVFc7zsX379kVGRgbCw8Pr9zNt2jTu/RAEQRiOo6D46Tf2t9FTMkpJuDLokk48U0x+hNfEy8cff4zTp09j9OjRistceeWVeP/997F161asXr0aVqsVffv2VU0krampQXV1td3DY+TkOEdcbBFF4MQJtpyBHDt2DKIo4sorr7R7Pjo6Gq1atUKrVq3w7LPP1j//xx9/oH379nbL2kbBXnvtNRQVFWHz5s12y7Rv3x5//PGH4jji4+Mxbdo09OzZE506dcKkSZNwxx13YMOGDQCAiIgIhIaGokWLFvX74sm5kRg9ejRGjBiByy+/HC+//DLOnj1bL4xsCQ0NRUREhF2UrlWrVtz7IQiCMBTNqh6DBAxPEq4NuiaBQkN0D8eXeM3n5b333sPf/vY3p4uqLTfffDNuvvnm+r/79u2Lbt26Yfny5Zg3b57sOvPnz8ecOXMMH68sRUXGLucme/bsgdVqxciRI1FTU1P//Pnz5xUTnVesWIH33nsPu3fvdso7ad68uVPiry0WiwUvv/wyNmzYgMLCQly8eBE1NTVo0aKFIe+nR48e9b+3bNkS4eHhKCkpMWTbBEEQHoFHULiaU+JoLieKLkVIrCJgUtt10zrjugDCK+Lljz/+wPbt25GpMx8kJCQEvXr1wrFjxxSXmT59OqZOnVr/d3V1ta6pCl3ExRm7HCeXX345BEGwS2QGgE6dOgFgosOW6OhoVFY6K/2srCxMmjQJa9eutRMKEhUVFaqJtK+//jqWLFmCjIwMdO/eHS1btkR6ejouXrzoyttyIiTEXvkLggCr1WrItgmCIDyCJC7UkHJKWofzb1fOXE5PEq4N//6mNe7pe1o5EtO5Q0Al6wJemjZauXIl2rZtizvvvFPXehaLBT///DPiVMRA06ZNER4ebvfwGMnJrKpI6Z8sCEBiIlvOQKKiovDXv/4Vy5Ytw7lz5zSX79WrFw4dOmT33LFjxzB06FA8//zzSFOoiDp48CB69eqluN2vv/4aqampePDBB3HttdeiU6dO+O233+yWCQ0N5fKWcRdv7YcgCEIV3kiInoiJ0jSUniRcG5ZsjMHPls7OU0NNQ4CrOgek067HxYvVasXKlSvx8MMPo0kT+0DPqFGjMH369Pq/586di88//xy///47fvjhBzz44IP4448/8Nhjj3l6mHyYzawcGnAWMNLfGRlsOYN56623cOnSJfTu3Rvr16/H4cOHceTIEaxevRq//vqrXW7JoEGD8NVXX9X/ff78edx9993o1asXxo0bh1OnTtU/JP7880/s27cPt99+u+IYunTpgi+++AK7d+/G4cOH8fjjj6O4uNhumaSkJHz33XfIy8tDWVmZxyInSUlJOHv2LHbs2IGysjLV6S6CIAiPwZsrwruczrwWrU2VnjZj10/h2JjVBujTA7j2CqBbR/bzph4BKVwAL4iX7du3Iz8/H4888ojTa/n5+SiyyQ+prKzE2LFj0a1bN/z9739HdXU1du/ejauuusrTw+QnLQ3YtAmIj7d/PiGBPe8hn5fOnTvjxx9/xMCBAzF9+nRce+216N27N5YuXYpp06bZ5QSNHDkSv/zyS/00U3FxMX799Vfs2LED7du3R1xcXP1DYuvWrejQoYNTBZItM2bMwHXXXYdBgwYhJSUF7dq1w7333mu3zLRp02A2m3HVVVchJiYG+fnGfAkd6du3L8aPH4/77rsPMTExeO211zyyH4IgAhuP+4lGhGkLE4WcEtmx8UxDyeBYBCuKrNro8YVJsFrrbq4FgU1dtY1iPwNsqsgWQRQ9VYjuG6qrqxEREYGqqiqnKaQLFy7g+PHj6Nixo/vOvRYLqyoqKmI5LsnJHom4uMrTTz+N6upqLF++nGv5Pn364Mknn8QDDzzg4ZH5F4Z+JgiC8Cu85icqTfM4IF1drd06wxxrH+FQGtvmt8txY9hx7X2azXZK7JLFPiUmv7gJ0pddhi05bL/btwO33cb/lnyB2vXbEeoq7SpmM5CS4utRKPLCCy/grbfegtVqhcmkHmArKytDWloaRowY4aXREQRBeBbJT9Tx9lzyEzU0UB7ThuWOOCTYnigJQfqyDth7vI2dYFIb2zMvhiA7Q3uXlm6d8fPPwNmKWry8IARf7G2FftecRVxkLYoqQpBzIKw+4hIV5deXK5egyAvRqKHPBEEEHxYLkJSkbMslCCzKcfy4sQHzzEwRS+edQTsHASHNzmzaBKSmqo/NZBKRt+4A4qNroXTfecFiRrcx1yK/QEByjzOygsWWzZs9ltFgKBR5IQiCIBotevxEjYpIMAN2AQUFzhddUWSCKT0diIhQH5vVKmDy0g7YNDcXVitkBUwzswV7l/4EAIiOaJg6OlESgslLO9RPFXm45Z5PIfFCEARBBBW+8BPlFUzZ2Sy6ohYx2ZLTBkNndsaSSflIbCufvBsV7px5HB9di01zc/FVeWdYo9r4WyqmoZB4IQiCIIIKX/iJ8gqhq2IqkbfOXpQ4RkwAJmD+/U0Eyj7ej/CWVkV3DltMJsBqBW6Mykez/q0DuppIC6/1NiIIgiAIb+ALP1EeITQ4uRL398hFfIx9NEWKmAxOtndGT+5+FhGtnIWLGiYT0EwIvC7ReiHxQhAEQQQVvvAT1RJMZrOIZen5gODcZ8hkAiACGRPzYTI11NCk9HKj0bDBXaI97pejExIvBEEQRNCh5CcaHw/Mng3U1Bh7EdYSTMndz6B9VK1ifyGTCegQW4vkHmca1nenFtjALtGZmaxCasAA4IEH2M+kJPa8ryDxQhAEQQQlaWlAXh6QlQWsWQPMmcMSZ2fNMvgiLIrA6Wqk/aUc2R9XIzHBXnUkJACvzuOLhLw2r7ZecGXv19/pWRRhaJdoyZPGMRlZ8svxlYAh8RKk7NixA926deNqXlhWVoa2bduiQC1V3gPMnj0bPXv29Ph+Vq1ahdatW3t8PwRB+B+Sn2jTpiziUlho/7rbF+HSSuDbA8BPvwGHj+OWiN+Qt/4Afs6qxJo1TDgdPw5cfzNfJOTGv4QgL48JrV0/haOsyuxkZqeEVJJtVJdoVv7tbKYn7Qtg5d++mEIi8eIqdUobJeXspxe8/k6dOoXJkyfj8ssvR7NmzRAbG4t+/frh7bffdmpM+Mwzz2DGjBl2DRuViI6OxqhRozBr1izV5YwWAdOmTcOOHTsM2x5BEIQcHrsI17UFEB3zS2pqcTVyMfzWCqSkAFu3Ap16heFESQhUe9XaREzeeIN5voxbkAQR8r2LHBEEAAmxhjVb1OOX421IvLiCg9LGT7+xv0srtdd1kd9//x29evXC559/jpdffhk//vgjvvnmGzzzzDP49NNPsX379vplv/rqK+Tm5mLIkCHc2x8zZgw++ugjVFRUuD3Wixcvci3XqlUrREVFub0/giAINTxyEa7r/iyKcMpjEQT2EH/5HR8uqsDQoUD+CWY+BwHKAqYuYvLSS0B5OXtK8nwpKLV3NlEMrJRWGHYz7Qu/HF5IvOhFasDlqLQv1rLnPSRgnnjiCTRp0gTff/89hg8fjm7duqFTp05ITU3FZ599hrvvvrt+2XXr1uGvf/2rnd19UlISBEFwekhcffXVaN++PbZs2SK7/+zsbIwZMwZVVVX1686ePbt+2/PmzcOoUaMQHh6OcePGAQCeffZZXHHFFWjRogU6deqEF198EbW1DcfNcdpo9OjRuPfee7FgwQLExcUhKioKEyZMsFunpqYG06ZNQ3x8PFq2bImbbroJ2dnZdmNdtWoVOnTogBYtWmDw4MEol84CBEEEJVqVMB65CNd1f1abnWliBkZe9zvu/Qu7LkhCpLDMfgpJDA1hvZFi2sBiaUj8ldiS0wZT3uyAyjMcl+wa48qkfeGXwwuJFz3UKW1VcvMNn0IqLy/H559/jgkTJqBly5ayy9gKkZycHPTu3dvu9b1796KoqAhFRUUoKChAnz59kOxgcnDjjTciR+HWo2/fvsjIyEB4eHj9dqZNm1b/+oIFC3Dttdfixx9/xIsvvggACAsLw6pVq3Do0CEsWbIE7777LhYvXqz6XrOyspCbm4usrCx88MEHWLVqFVatWlX/+sSJE/HNN99g3bp1OHDgAIYNG4Y77rgDR48eBQB89913ePTRRzFx4kTs378fAwYMwD//+U/VfRIEEbjwVMJ44iL8XQ5nKbJDCfSWnDbo9EB3pC9LwNLNMUhfloBdNd3rp3pycgDHAPjg5EpsmP07IlqpzTnZYFCZtC/8cnghh1091CltVSTV21q9qZQejh07BlEUceWVV9o9Hx0djQsXLgAAJkyYgFdffRUA8Mcff6B9+/Z2y8bExNT/PnnyZBQVFWHv3r12y7Rv3x4//vij7BhCQ0MREREBQRDQrl07p9dvvfVWPPXUU3bPzZgxo/73pKQkTJs2DevWrcMzzzyj+F7btGmDZcuWwWw2o2vXrrjzzjuxY8cOjB07Fvn5+Vi5ciXy8/Pr39+0adOwbds2rFy5Ei+//DKWLFmCO+64o34fV1xxBXbv3o1t27Yp7pMgiMCEt3N0cjLrrKwWhI2K4r8IWyzAq4tDkKmeJgjAvgR61/5wDE6udLL9P2cpBko7ADFtnKI/JpOIJZPYTbOjP4wiBpVJS+XfQ4fWTYPZHGdP+eXwQpEXPfCqWYPNgZTYs2cP9u/fj6uvvho1NTX1z58/f16xQ/KKFSvw3nvv4ZNPPrETNADQvHlzp8RfXhwjPQCwfv169OvXD+3atUOrVq0wY8YM5OerR66uvvpquyTjuLg4lJSUAAB+/vlnWCwWXHHFFWjVqlX9Y9euXcjNzQUAHD58GDfddJPdNm+++WaX3hNBEP6LVhKuKAJjxwI7dhhfDXM4pxJL/vG7rnXiImsxOLkSm+Y6O+y2MDWkHbRta79eco8zSGxbyyVcrFbggmhcmTSg7JeTkNAgDn0BRV70wKtmDTQHAoDLL78cgiDgyJEjds936tQJABMdtkRHR6Oy0jn3JisrC5MmTcLatWvRo0cPp9crKiqcBA0vjtNZ33zzDUaOHIk5c+Zg0KBBiIiIwLp167Bw4ULV7YSE2B87QRBgrctuO3v2LMxmM/bt2+dURdWqVSuXxk0QRGCilYQLsOmXgQOB6Gj1qAvAXrftMm2xsL+Lith0Un2Tw9JKXI1ciDpPlcWVTfDB9DwAzhEUQWB+dEJuPoDWsE0Bjovkuxm2imy1vZUdkGxwT6O0NCA1VeF4+AgSL3qICGPCRC2yYqA5kERUVBT++te/YtmyZZg0aZJi3otEr169cOjQIbvnjh07hqFDh+L5559HmoJUPnjwIFJU+sOHhoZy+cYAwO7du3HZZZfhhRdeqH/ujz/+4FpXiV69esFisaCkpMQpX0eiW7du+O677+ye+/bbb93aL0EQ/oee5NqyMn3bzMxkUR1bcZSQACxZIiItTt8UjtUKFJSGABAUO0QDdXKlphY4fQZAQ9pBUQXfzXDp6Sb4x6LL8ORcY8qkHZH8cvwFmjbSgyAAl3dQX8YgcyBH3nrrLVy6dAm9e/fG+vXrcfjwYRw5cgSrV6/Gr7/+aheJGDRoEL766qv6v8+fP4+7774bvXr1wrhx43Dq1Kn6h8Sff/6Jffv24fbbb1ccQ1JSEs6ePYsdO3agrKxMdYqpS5cuyM/Px7p165Cbm4s33nhDsZKJlyuuuAIjR47EqFGjkJmZiePHj2PPnj2YP38+PvvsMwDAk08+iW3btmHBggU4evQoli1bRvkuBBGEeKLCJS4OyMwUsXReNf5yRTn696yuT7QtLASWztOuMLLFagUgAOnLOiC2DV8E5XSJ/XI5B9T9YaxWoLjCjIRhPfDloTY+SZ71BSRe9BLThpW0OU4NNW0odfMEnTt3xo8//oiBAwdi+vTpuPbaa9G7d28sXboU06ZNw7x58+qXHTlyJH755Zf6aabi4mL8+uuv2LFjB9q3b4+4uLj6h8TWrVvRoUMHxYgGwCqOxo8fj/vuuw8xMTF47bXXFJe95557MGXKFEycOBE9e/bE7t2766uQ3GHlypUYNWoUnnrqKVx55ZW49957sXfvXnTowERlnz598O6772LJkiW49tpr8fnnn9slDhMEERwkJzvnYbiKVDXT78pK9MEBZGX8hrUzjyM74zfkrTuAwcmVEEUgLkpfPmNBaQiGzuyMLTltuCMo67aEID6+4R7YalX2h5HE0T8WJ+HSJROefNK3UzneRBBFL1jDepHq6mpERESgqqoK4eH2FT8XLlzA8ePH0bFjR8WEVm5EsaH6KLRuqsgDERdXefrpp1FdXY3ly5dzLd+nTx88+eSTeOCBBzw8Mv/C0M8EQRBeIzMTGDdOO5cFYBU7yT3OIC6yFkUVIcg5EAarlZ2vpdP27k8qcVOrXIiwnxKSBMLQmZ1RccaM7IzfNPc394N22PljuN1+htxSgXWzfkcTBXEhikBZlRnt0npi1iwBdTZa9QnJrErpDyS2vVS/Tn5xE6QvuwxbctogKgooLg5s8aJ2/XaEIi+uIgisHLptFPvpR8IFAF544QVcdtll9cmuapSVlSEtLQ0jRozwwsgIgiDcQyqR5hEug5MrkbfuALJloimAVDUjok+UfC6LyYQ6r5Y/8PXBVjhREqJo5WW1AvnFIZjzQTx27Q+vFy6DkyuxYc7vbFsqREdYkNrvNLp0ka/wcfTytfX3WrEisIWLXijyQjRq6DNBEIGF5ZKI+/9+Bk0szlEUR6TSZMBelEhXvV/QGVf0bYNDu6vRU9COqLz4fhx+Od4Cm+u2KThsUwTqp4kkTCYReesOID5Gu9xZSu79vW0PpKQI9RVP5spK/KWN8z6lqNCes53R5y7PpCx4Ez2RF6o2IgiCIAKD0krU/pKPjS805J6cKAnB5KUd7AQDoG7uJgmATpZ8dLm8Nfp2qcXamdq7nzumCEs/jlV8XU6bSD4tPEiGdvHXsIojsxlI6S8C3+YDMi3jTCYmmPpE5wNia7+bAfAkNG1EEARB+D91feWawl4IxEfXYtPc3PppIAkec7cW5lp0jDrDnUwrAnjinmLmySLn1eLQCgDg92mxxWyxWUfD2b2+xNqgfkaBQqMUL0E2U0a4AX0WCCIAsOkr5ygaGnJSXBMNcZG1muXI9fsSWLNFJUFk2wpA4vKEC1zjsMO2mtXPnN39hUYlXiT3Vlct8Ing4+JFFot1dOwlCMKP0Ig+yIkG3mhKUUWIXTmyEUjCyWQSMf6eMu5evaIIpo6k/gYAt2O75ewF1c7awUajynkxm81o3bp1fa+cFi1a2GVrE40Lq9WK0tJStGjRAk2aNKqvAkEEDqIIVFZzLWobbZGiKfHRtbJVPlJybM4B5oi+JacNZr3fHvMePen2kGMjazHmrnIk31SL+Gi+iIgo1kWVLlmAA0eZaLm8AxDdGggNgVijbI4nioCQX4Q3Zraoz/1hjsC+6z3kaRpVtRHApglOnTqF06dPe39whN9hMpnQsWNHhIaG+nooBEE4UlrJpos4p0RS0q/Arv0N5/36aiMRdgLGWnfVc6cySA5RZNs2uzCnUS9eHLmqM779DrixVS4EKOfkSmKs44gesFqF+uV82TxRL3qqjRqdeJGwWCyorW1cc4SEM6GhoTBpmS8QBOF96hJ0eXC8cNvCzN3y7Sp+CspC8OQS5wolaXm5UmgtFMWHm+uKoSFIuq8HRqUUcUWFbAWcILAIzPHjgeEBQ6XSHJjNZspzIAiC8EdsEnS1sO0fJOf3siWnDbZ+3breYbdGDMHp0yJi21xC/57VTj4xW79ujfJqE6LCtQ0+bVETLkriRHpebV3hIquIOlbYlGsctlNnogicOGHfLTtYaLTihSAIgvBTNBJ0bSkoDUH6MvkoioTVKmDX/nAMTq7Ee88fR5vmDdsurzIjY1MsXv4oDlargOQeZxAdoU+4aOFuaqXU1oAHueX0dOAOFCheThAEQfgXnMJl7gft0HFED1XhIiFNB7VuZr/tqAgL5j16EsVb9mNwcqVLviyuwitqJCdhre7S+cUNCci2eKIDt68h8UIQBEH4F3/yeaPs/DFcsTWALbZuu0qCISrcgk1zc13zZfEgYmgIjpeHQRS1u0s7Tp1J3bKTk707Zm9A4oUgCILwH0orgT/U5znUogxySG67qrklArN5eeb+Ym5fFk8ijUG4vAMWZ7CBf/xVGwyd2RmFZfZTQwWlIRg2y75ySnqvGRnsZ7B5wFDOC0EQBOESUuPAoiI2NZGc7GZViygCR//QXEQQgKlvJnJFXQB+t11BAMJaGJvv4moVUi3MCL0qCYhpg7Q0VvI8ebJ9AvI1XWox/MEQlDUJw57f7XeSkNAgXJKSgIIC+9cC3QOGxAtBEAShm8xMdjHVe1FUFTxVZ4DaS6r7lYRAWTX/5Ys32dUTuJqsa+7eGYhqKBdOSwNSU6VjJyAuLtzu2DW81nBct24Fhg6FUySpsJA9H0geMI6QeCEIgiB0kZmpfFEcPlzEzswzuKVPLXOJjQirv4JrCh4d/Xkcoykmk1hfDi0luEqRGS23XU9z5k8TWjW3cgkZqwhcsIagRaTzlJjZrFzy7PiaxcKOtdwUmBQNSk9noicQXUNIvBAEQRDcqF0U7/1LnSFcRC1wuO7JOpv7zJw22lGAW/kjJLbRFDkjupJKM1Z/EYVPdrdGzoEwTF7aAZvm5rplJucqn34TjvtvPc21rACgRfdEtweZk2MvEh0JdA8YStglCIIguFG6KEpW/PExDtGTi7UQD+Xivx9WKkYBABYF2P3lJc1kUlEE8ksaknWV9tu2jQVTh5cgO+M35K07AABYv7O114ULANx362nw5gALAoCQJrBY3Euy5fV2CVQPGI+Kl9mzZ0MQBLtH165dVdfZuHEjunbtimbNmqF79+74z3/+48khEgRBEDqQu9jZliLL9gQSgRdH5MNkkr+EiyLQO6kSfcJ/V53WqRc6S1lJsOZ+64iPrsXmubnc0Q+jEaA+Pkf2fFWLpCRgwADggQfYz6QkNu3GC6+3S6B6wHg88nL11VejqKio/vHVV18pLrt7926MGDECjz76KH788Ufce++9uPfee3Hw4EFPD5MgCILgQO5iJ5UiK12gBQHoEFuL5B5nZF9nIuSP+mXVeG1dbH1JsNZ+G7av/rqn0RvtefbFEKfoljS9xitgkpNZPpHSvgPdA8bj/9ImTZqgXbt29Y/o6GjFZZcsWYI77rgDTz/9NLp164Z58+bhuuuuw7Jlyzw9TIIgCIIDuYsibymy0nLPP3gSiW0vaYoQEcDoO8ox4rYy9O9Zjfho/gRfrR5C/oAIoLA8BF/K+NfYTq/xTCGZzSwRGnB+37YeMIGYrAt4QbwcPXoU7du3R6dOnTBy5Ejk5ys32/rmm28wcOBAu+cGDRqEb775RnGdmpoaVFdX2z0IgiAIzyB3UeR1pT0lU7I8OLkSc8fwJV6YBCC2zSWseTEP2Rm/4a10dU+YgEMEJmXIN5gE7JNseZD8YeLj7Z9PSAjsMmnAw+LlpptuwqpVq7Bt2za8/fbbOH78OJKTk3HmjHzo8NSpU4iNjbV7LjY2FqdOnVLcx/z58xEREVH/SExMNPQ9EARBEPbYXhRNJhHj7irTdKX909IEOT+H2UUBbHNWXCG8pdUv3HCN4KJoxnvfdObq06QnyTYtDcjLA7KygDVr2M/jxwNbuAAeFi9/+9vfMGzYMPTo0QODBg3Cf/7zH5w+fRobNmwwbB/Tp09HVVVV/ePEiROGbZsgCIKQR7oo7tuhbb0PAC06tcWGDYJdFKD/tdVc6yrhL1NBVqt86bie9U+VCHh8Rmuu5fUm2UoeMCNGsJ+BOlVki1d9Xlq3bo0rrrgCx44dk329Xbt2KC4utnuuuLgY7dq1U9xm06ZN0bRpU0PHSRAEQWhjNgM9r7LxdFHhUF5TpKYCd90FvPUW0Op8JUbemOfxMXoaqwhAAP69Oxz39HMtbcFkAjrEXkJyjzPYtT9ccTlBYFM+gZpkayRezcE+e/YscnNzEacgG2+++Wbs2LHD7rkvvvgCN998szeGRxCEK7hrSEEENqF8xnJPTAlBbCzQvj3wZWYlHrk5F83Mgf9ZKSgJwdCZnbFoo/JNNi9qic/BkGRrJB6NvEybNg133303LrvsMpw8eRKzZs2C2WzGiBEjAACjRo1CfHw85s+fDwCYPHky+vfvj4ULF+LOO+/EunXr8P3332PFihWeHCZBEK7iaoMbIniICGMCRsHa32plXY+ZXb99nos/TPm4SnmVgIxNcXj5o7h6z5kTJSFIiHF9GkytB5PUaJG+VgyPRl4KCgowYsQIXHnllRg+fDiioqLw7bffIiYmBgCQn5+PIpvMo759+2LNmjVYsWIFrr32WmzatAkff/wxrrnmGk8OkyAIV5Aa3LhrSEGRm8BEFIHT1UBpBRAXI7uI1QpAANKXNVTQ8Hqz+DuR4SLmPHISqf1OAwBS+51GREuLS8LFagXyixtcg22ZODF4kmyNRBDFYMnVZlRXVyMiIgJVVVUID1eeOyQIwg0sFmb5qdQ8RZqcP35cPcZNkZvApLQSOJZvH21pUvd/vtQgPvOLQ5C+rINdBc39t5Zj7czj3hqpISj1QxJFoKzKjAkZHbBu1nEIUI8mSVdb22UkgTd0pnylUVZWYPYecgU9129qzEgQhH6M6Pqm1pq4vlMfCRi/o7QSOJTr/HydaDlQHYf5Gc2cOjsDbMqoHaehnT+h5lIb09qCtTOPc0WSBMH5415Q6izwJKKiKDlXCRIvBEHox92ub2qtiaXb3PR0IDWVshO9iMXC9GZRERAXJyK5+xmYLbUspyWibkrjmLovyxVhZdiQ3cPJaG1wciVWTMtDdETwTQuadSRgSEJo7gftsPPHcCeBZ0t5ObB1K2l4OairNEEQ+nG365ueyA3hFTIzUd8McOPblehcegDmg78Bh48DP/0GfPMTcCRPMTFXoplQi7v+Ym9EOji5Epvn5iIqPPiEi6sc/qM5du0PVxQuQIOGpzQwZ0i8EAShH3e7vrkbuSEMxTb3enByJTbNzUV8jINIqb0EFJdzbe/6y6vrO0gHS3WR0ahVFkmQhleGxAtBEPpxt+ubu5EbwjBsZ/BshYY71UAzR51C3roDGJxcWV9dRMKFYVtZFBXFtw5peGdIvBAE4RrudH1zN3JDGIbtDJ6RZczx0bXYNDcXqf0q3d+YH+JKna6UzvVHSAfs2CFg/Xq+9UjDO0MJuwRBuE5aGkuqbcjyZIJDK8lWitwMHepcgmGUlah99infuBohtnf1ag6vejGZWJThySGlhm0z0HAssf7TEoLj5g7oe08bmM3sI5qQwArs5MQQtQNQhsQLQRDuIXV904sUuZHzeXHXSpT8Y7ixvavnycPQgymIY/ta02CiCLz2745o1yEEe7+uxcGjDaXjth9FT2v4YIVM6giC8C1GR0iU/GOkqwH5x9hhsbDDXlrKcl7y1h1AfHRtUAsPb7B4Y1tMfbOD7GuOH0U5rZ2Y2PjaAei5fpN4IQjCu3hyOsco599GxpQp7EIJNFQbQQzuyImnSUm/QrVDNADExLCPamgozXIC+q7f9NEkCMJ72JqJPPAA+5mUxN8HSQvyj3GJ1NSG37fktMHQmZ1RWGY/hRRct7nuo3Q8RBEoPW2W7VPkSGkpy3fPzGyYfR0xgv1sbMJFL5TzQhDeprHeYnmjHQD5x7hE376oTyAFmIDZ+nVrJPc4g7jIWlyecAHj7ipDYtvAs/b3FOo5LyL6X3sGsW1qZdsk2FJWRt0wXIGmjQjCmzTWRFKt6RyAxdAXL2a3oq4KuuxsFs3RojF1u+OA57CZTOyCvHF2LtqEWWhKSQcnSkIweal8/yKAZjMlaNqIIPwRWxtTW6TIg1FTJ/6I1nQOwGLoDz7o3lQS+cfUY7EwUbJ2LfupZjFfVFQnTnpW4/5by9G/Z4NDroTVKiDrx3C8/59o2QaDhDLxMczzZnCyvOcNzWbqh8QLQXgDrUaEQHA3MdE7TeOqoHPX+TdI0Jta1D2uAkWbf0J2xm9YO/M4sjN+q3fItWXILRWYMrwYgkBW/3qQTP8yJuY7iUJbaDaTHxIvBOENGnsi6dGj+pZ3R9C54/wbBOgO8OWewNXC72jb5pLd047RgsHJldgw53c0CW7d5zFMAtAhthbJPc4oLkNOuvyQeCEIb9CYE0ktFuDdd/Wv546gS0sD8vJYbsuaNezn8eNBL1x0B/hKKoCCYsgFUWyjBU2aWLFiWp7sco0VUXRt6kzJxbiRzGYaBlUbEYQ3aMyNCHnyXdRwVdC56vzrr4giUHUGuFgLhIYAEWFOczdKh9pkEusrh4oqQpCTE4aU/gCO/qG6SylasPWlo4iOCNIpTTc486eA8Jb6FIySi3EjmM00FBIvBOENpETSQGliYmQ5t7vRJF8KOn8pay+tBI7lM+EiERoCXN4BiGmoYDlVJKJ/TxuRciAMqf1OY8mkfLsy53OWEOCPaOASnyD5+03KUx2NFUEAWjQTMev9OJibiJg56pTmOsWVTWT9X+bMCfqgoOGQeCEIb+BKI0JfXTiNLud2VXz4WtD5S1l7aSVwKNf5+Yu17PmrOjMBU1qJe+PycX9Gg0gpqzIjKtwCR7ncwlQL8Y8imgZykyZmYPaYIgyb3QknSkIU2ypIX/cJGR2c/F4SEoAXXvDCYIMMynkhCG+hJ5HU0060SnW0StmeBQWul3NrlS/L4Sjo9NT9asGzLX8paxdFFnFRIzcfKKmAeCgXTWGfTxEVzt6bSa7wikqdDUEEsOiJE5iyLBEQWCdtOV5fF4vNuyLr/5YqtpYsoekiVyCTOoJQwxPRD61terqxoFJEYfFi1uRGLT8lMdE1Jy3pPQHOUSdRBKKigPJy+/1IXemMjIAobWvRImaSV1QEtG0LPPwwEypyeNNR7HQ18NNvmotdsJgRarI4iRTCe6SkX4HIMIvTFB1CzPi24jIM+0dko2+8qAU1ZiTxQhiBL6YNPN1YUE0Y8Z4KXHWnVWudm5oqL+iMFHJK23IVb7j0lpQDh497dh+EIYyY2xEbsiPR/9pqpPQ8g7TBwDV/CQdas8Rqf0mf8mdIvJB4IdzF09EPJTxpb89j0c/D6tXAyJGuravnDG6kkDPqvduyZg3roucqPMeCM/JC+J4X32uPcXeX2kddZJKqCWX0XL8pYZcgHNEyyxAEZpaRmqr/1knrguVJPxh3S5YlSktdX1dP+bIeYz+tbRr13m1xpwqKN6oXEcYugBflvUFEESg53QSxDgZzhPewWoHyajPmPHLS+UXHpGrCMChhlyAc8ZQbLk8SLu8FsW1bffsGjDPAi4lhImzHDuDFF9ljxw73Wxs4JtIq5Zw4wvO+jDT/c7c/kp5kYEFgd+4qTMjogBMlIYqJooTnsFoB2LRKUMw5ys2nZlAGQ+KFIBzZupVvuR07+KtfeC9YvJU5Dz+sv+LFKL+U3FwgNhYYOBD45z/ZY+BA9pyrVThywm7KFL51ed6XUe/d3f5IrvS4imnD7txD7c3NxNAQfHq8MzbvisTkpR1UK10IY3D8txWUhmDWyjhER2gkS9fUMoNBwjAo54UgbMnMBIYM0b+eWiKv3twNpcocOTZv5s+9kcahZJQHNJQlK+FYFeTumADXk4hdyXlRe+88uFsi4k5Ok43D7pffhuChiWHIP8GumIOTK7Fq2m8Ij6AMUG8w91/tsPOHcOQcCMPwlAqsncmRVN2tI9A2yvODC2D0XL8p8kI0HrT8PaS7YldQ8//QOw2l5Acjx7hx/NM1Wh2XBQGYOrXhd7nXeZg8mX9MPJEIOfRGQNTeu9o+EhKA7duN64/kTk6TIACtw5H5VRRS7g23Ey6b5x5DWDjVSXuLw3nNsWt/OKxWQdHu34lQzuUILki8EMGBljDhyTdxJ6lTrQuyKxestDRg1SrtdcrLgZde0l5OOj41NcDs2UD79vavS0Z5r70mL5zi49l6WlEXgB1D3nwg3mMeHS0/Xj1CQo8olATOkiXAbbexqqKUFPdrW93scWWr9UwmEQN6VePdaXl1Q6bTubewFSw5B8JwsjxE3fOvaV0vKsIwqNqICHy0KjeUpiWkaIl0EXQ3qVOp+sXVC1ZJCd96b7zB/MWVLqxKx2fOHKBLF/mqJ8djJYrA3r184wGMr5rKyGCiw12TjLQ0Z0+ZsjJnc76EBM84iLnZ40rSeoOTKx3M0Cjq4g2sVpbnYtufyGoVkB/aAe0h08JBonMHfQ7ThCYkXojARkuYbNjALkw8Zc9GJXU6Vsm4esHiHU95uXK5sNrxmT2bCTfb9ZSWP3mSv/pHz9h5l4uPN84QTq5ce/Bg7ziI6elxJdNF+lShFTOSd2Pu3GbSSsaPsZEj/UtYdKvheamyKH2ZfX+iqCjghr+1ASo6OzfPbBrChAuVSRsOJewSgQtPImx0NJ8vSVYWu2AZkdQZHQ0sX+7cq0jJHh+QnwKxWFhJdEWF9j7lDNP0JgobZeQWHw988AGLHPEa0WkJO3et+L1lb8q7HxW3YUtqGg7nVKKjNR8tzTYXQsslXMxYhNCHHmbl6jRNZDiSQHl9XSweuK3CznAuvzgE6cs6YEuOsxCpz6+WEZwUceGHEnaJxgFPIiyvoVpRkXZCK8Bus7RORmVlzsm7epoySpjN/AnEchEMvYnCRhm5XbjASqd5GkryHHNXy5IlPN3k0pX9pKUBeXnsqrdmDSzbs5C98jim5KTh0dRKXIVcNDc5GNMJJoRMfRpoG0vCxUOUnjZh+KxOeG55IpLu74GU9CswYm5HpKRfgY4jesgKF8Bm9rMuqRpto9hPEi4egyIvROCydi27SBiBbWmqWg8egK+MWSlioDcCYLEw/xSlRFm1yATv8ZGiNkYeT8cxAuoJtmrHXE8puOOx3bpVuZ+RIGgn/eqJpLjYTsL2rZtMIvLWHUB8TK28b4g01UkoovcQOS5/oiQEk5fKR1iU8Eabq8YA9TYi8dI44PXMiI5mF3890xJqF63MTGD8eP7pKHfPaq5eGPV6ivAur4SaR4zW9I9UDZWdzf5OSVGv7nH8/ygl3Z4/r14hpdYlm9fC38UeTBYLKxSbNath0f49q5GdQb2M3MUdjSdNHQ2d2VlTwHizwXhjgKaNiMaBlhutZOP+1lsNfzu+DshPS0hJnXIlsmlpwOLFfGM0wpY+LQ2YNs15jCYTe14pcsB7fKREYWl5vUjbV/N2kaaoli5VLmO3dewdPVrZ6VhuembYMGfxUFCgXdp94kSDYLItt587l5kV8lj4u9BOIjMTuOwye+ECAHGR8j2MCH24E5wymQCIQMbEfJhMyvf2Rs1qEq5B4oUIXHjzJYYNY9EJR2+T+HjXu0PzeIUAxlQwZWYCCxbIm+otWGBcPonZrN0lOTXVWeAkJLCKLR6mTLHPA9HT50dteXcYPhx45hl7QeSoKiTk/Hx0loVLb0GueIvb8IzwKCYT0CG2Fsk9lC39XbEaIoyDxAvhPloGcZ5ETyKskbkCyckseVeNqCjt5n28rr9qs7uTJyv3WdJzfCwWtg01fviB9TaqSzStd51NTVVfzxZbfx09fX54joUrVFQAr7/OL4gcIym8AvXoUae3YDKJ6N+zGvffWo7+Pavx9cFWKKkkBwt/wTYS9tRTzh97Ei6+w6Pfkvnz5yMzMxO//vormjdvjr59++LVV1/FlVdeqbjOqlWrMGbMGLvnmjZtigsXLnhyqISr8OYFeBI54zHHHBUekzpvw3PseKYkCgrYlIvSNtSOj23uSHGx9gX8xAlg927nPB4tLxvHMQsC8MQT6nlDjqZ/RlVDGYUUceF5702aAD//itPrdmJon674+ePf8Pebq/HgpHZo27bhHvJESQi+PdQC9/Sr9sIbILQoqghBTAzw5pssgEv4Dx4VL7t27cKECRNwww034NKlS3j++edx++2349ChQ2jZsqXieuHh4Thy5Ej93wJl1/sn/iQK5IzHAO3eObYmdXomrnNytPMpXDWPc9f1t6CA5Wts2NBwxpU7PnLiiQe5MamZr8mht4xdab++RIq4SO9dqaHn45OA4SMBsxlRABZPPAk80QIQWgIOpvLx0bWIj6G8F28gfUTlLi+Sk+7gh8OwYxLltPgjHp022rZtG0aPHo2rr74a1157LVatWoX8/Hzs27dPdT1BENCuXbv6R2xsrCeHSbgCT0M9uT4/3saFZEou3LG/13Ps3MmZGTGCiSA53MkdURqTnt5BruzPKAdkd3FMdAbYe58zx3nZxycB9z9kb9UqbQNw8mthyaIiLBYRojWoCkH9Cqu1QTZarc6vQQD+ua4DJk4SSLj4KV7NeamqqgIAREZGqi539uxZXHbZZUhMTERqaip++eUXxWVrampQXV1t9yC8gKdEgdEY3WNHwh37e95jN3s2EzBqFUNqWCws8uKY9OpO7ohK3x0ADeZrvNVY0dH6q6H0dIU2GrUSky5d7P9u0gS470H5sah06TaZBJjNAns5uJwsfIbjYSwoDcHQmZ0xZGZnFJaFOL02bFZn3PFgGxIufozXMsOsVivS09PRr18/XHPNNYrLXXnllXj//ffRo0cPVFVVYcGCBejbty9++eUXJMiUcc6fPx9z5O54CM/iKVFgNEb32JFwp8Ee7zGRyoajohqmuFy5mI0b1zAtZrGwcmVXc0fGjuXzw5k0CVi4UPv4LFwI3Hefdp8fQP/UVEIC8NhjypVDrhAZCTz5pHyCsuNnaMp054iLHs7/CbRQnl4n+DlRGoJ3P43GsYJmKKpgjRWl/kRbv26N5B5nEBdZi6KKEORVhGHRYoGScf0cr5nU/eMf/8B///tffPXVV7IiRIna2lp069YNI0aMwLx585xer6mpQU1NTf3f1dXVSExMJJM6T6PXAM1XeLJ3jiv9igD9ZnDShToqSjvPRont24GqKtdyXGyx7aGklHA8diyLQhw9yqJHgPrx0euuq7T8woWs54+tkAJc71clHfcBA4A9e4Bz5+zfp5JZXWEhW/e/u4CmzZw2yw256bqOKEIE8O+NZ7Bod287seKI1AJt8WI24+mptleENn7nsDtx4kRs3boVX375JTp27Kh7/WHDhqFJkyZYq1XGCXLY9RpaogBgF9viYu+eCdQs4gF9IoMHV2zteY6dI4LAzqyrVrGGh23bAg8/zN/peehQYPNm96chJDGqlHDsiFRObiu6bI+P9P8qLGQJvDExfFcQPW0WlESm7RgfeYSVidv+H6OigJoa4OxZ53WUPjvSvh56BHhkvPL41VDLJCX4EEVY130ILF+GodiELZD/LhpxCiCMw2/EiyiKmDRpErZs2YLs7Gx0cZwT5sBiseDqq6/G3//+dyxatEhzeRIvXiQzU7nCQmLzZvUyZqPHo1R6DLjfO0cJVzoWa11QlXDswaR1/CXCwoAzyoZbXCQksHwWgL/7tBS9mDOHRWNsj4+ny+xt/y9HjwLvvussTp58EnjhBeeycSlq5Er/qsxMILQNO+aEb7BagdISWEfciwJre3TEcVjh/J006hRAGIPfiJcnnngCa9aswdatW+28XSIiItC8eXMAwKhRoxAfH4/58+cDAObOnYs+ffrg8ssvx+nTp/H666/j448/xr59+3DVVVdp7pPEixfhaRoYGQk0a2YfIfCEDwxP/x9viSheXClVtp22AdgF1ls5X3PmADNnujbt5XiR14rczJnTICrUUBKOmZlMmNh+7tq3Bx5/3FlEyW2TV5wBTlOjlvJqmA9SfyK/IP1xYP8PSEEWdiHF7qXFi1lqFk0R+Q9+09vo7bffRlVVFVJSUhAXF1f/WL9+ff0y+fn5KLJJYKysrMTYsWPRrVs3/P3vf0d1dTV2797NJVwIL6PldSKK7HXHqQ0563d3XHp5S48B5X5FvkCqzMnKAp5/nm8dx6TQF1/Udvpt1cql4TkhRU71JmE7Vp7xVDvNmmXfRkAOuR5H7dqxfk9Dhjh/7k6eZNs9epS9h5wc+c+ZXjM8m/1kZgL/eJR8WvyGyGgAQBwaPrNSERsJl8DGo9VGPEGdbKkpWh2LFy/GYt4yS8K3uFpJ5GgOt3Wre9MHesq2fZk8LIfZzOzp//Uv9eWk6EXfvkzc2UYaVqxQnz56+mljKm7i4tjF/vPPXVtf+rzwioOCAmWzQ6Ups7Iylrirhu2xkPuc6f1cT5kCNG+OTKRh+BALJvY8BKC5vm0QnqGiDABQBCb6qZli8EC9jQjXccc0TBIUL72krzGfHLwXm8JCduH/6CN29vroI+/3YnKExyxOOuPefz/QubN9pCEpib329NPyRmj33Qc895y2P4rWmTwxkSXUJiWxpGFXkD4vesWBo9mhxcLKv41A7nOm93NdVgZx6FCcevgZHEcSMg7eClRWkEeLL7FageJTsB74CflIRA5Y5Rk1UwwevFYq7S0o58WLuFI140hkJIs8yMFbxsybgxEeDsiZGHqzF5NtjkbbtsDo0dpRiIQENtW1YIF8Tg9Pxc8jj7D1AfmKq3vuYREwJVJTgU8+ce3/7Ph/1JszA9jnlezYYd/LyV2k8R07xvo2FRayaEpZGff7lZYSkwfANOkpoC25gvsMqxUQAOvM54CcbAzFJuyKTMOGDf4xW0woo+f6Te1LCdfRaxomh5JwAfine3ibAiq5L6tNTyjhmCjaty+78KklA7vaS+j995n4UMvpUaO8nAmXadOcy4ETEoBFi4DxGmW9n37qunAB2D5sRRtvE0cJ22iNw1Sz20ifs/h4JlhcQACA5AEQ5r4Kx35FhJcpLQGWLUJBzjGkYxM+FtKw6V3gttt8PTDCSEi8EO4h9bORy1k5f56JE6ULFK/g0ZpmMEJEiSJ/g0Y5ESKV2ko4RnN4fVHk+PJL97spiyKwbh2Qm+sssl56Sdv8ztWptYQENt01ZYpzmbKeY+GNvkYuChcAbMpu0lMARKd+RYR3WLY5GsdyTqDkwBmcwkygZ09c1cWC7AerccvdYaiTmESQQOKFcJ+0NPkyZFtzODl4L148Fy4lEWUyOXdeU4InyqMkQhwv7rbdoVNTXe8lZCQnTjDhYvv+Ll5smE4yAlu70nbt2PGUK+XmdQqWa7Pg7bh/dDRwxx3AwUOseqWiDDiw3/5z1aMnTRX5mL+kRaLNTUkIv1iJWzvko2WTYw0vfhsCXN4BiGnjuwEShkLihTAGs9n5op+WBqxfz/I1XLlzV+sPJIejiCouZnf8eigqUvYO0dPQ0LaiKiLCtciJ9P5TUliPIyOwjWJlZrLEV3fN6xx55x32kyefRwtRtC8Nycz0nq+NRLfuwD33A4/ZiJOSYmDpQiAni/1dV5JL+I6eob+jZ58ooKDY+cWLtcChXOCqziRgggQSL4RniYlxXbgA+msabUUURzsJJ44edTYok6aAIiP1XYylXApXcjRsc0UA9cRmPUhRrE2bWMdpIxEEllcDuD5F5siTTzZMvUni0ZskDwDk8liiY9jzM59lAqbCjSknwhDE2ksQ5ISLLbn5QHRrar0QBJB4ITwLb1ms48U5IcF93269eRLh4fJ+KNIU0J13uj4WvURHA6NGOeeKuENUFIsibdzISqiNRhSB11/Xn8+ihhQVcrcbtiuo5bFI05FTngO+yWHTSCXFTNS400macBkuOVJTC1SdAVpTJWqgQ+KF8Cy8AmLDBhY10Wvdr9ZXSKpC4r3gKU2fSBfi//yHbzuO9O2rbxwA81TRMlvTy8CBLA9p+HBjt+uIq52v5Vi5EvjzT+CLL4yJPOlBK4/FZGKie+NnQMarwM/7gVtvp27Q/s5FckAOBsjnhfAsWl4wvF4ucvA09tu40fMXay2io4ExY1hUwiiUPGvUkHpNGSkugpmBdwAz5mkvR12gA4trr6DIi5/iN72NCKK+jBlwPrm749Ut2cM7RjMKCtjzmZl1jWb+ob6d8HB2QfckZWWsoufpp7X7EPGiV7gADb2mCG2SBwATOJO9SbQEDk1DgAjq9h0MkHjxB9xpShgISGXM8fH2z7vq1c1jDz96NBMxWhfr0FDvTEeIIvv/njjBojBNm3p+n4RrSEm6rVvzr0MCJjDo3IH+V0ECTRv5Gp6pj2BBLT9FD0bbw3uTsDDjS5MJ4zCZgHWfsCo5MpvzW+Rm6qxW9i8TEmKBkgr73JamIUy4UJm0X0PtAQIFJcMzW4OzYBIwcl4wrmC0Pbw3CSThkpjIpvQA4OGHgbNnfTocr0Bmc36P1QpAACqqzYiOaIhSF5SGwHKuGh1PfsVujrr3ZDdMoXVTRRRxCSpIvPgKNcMzW4MzHrt6wj1iYnQ14UN0tHtW8v5Os2bA9OnACy+wz15mZuMQLgDQt7+vR0BoUFAagvRlHbD169ZI7nEGcZG1uLziW4w78AQ6WvMbFgzWCDYBgKaNfAdvZ13bbrqNGdspp6Ii4KmnjNluYiIzghs+nF+8/O9/LFemsJAJzGATMtIdqtTawNG0L1iRcl3oDt3vWLYlGrsPtsLJ8lDkHAiD1drwPxqMTGzCUACifRKn7eeYBExAQNNGgQCveRvvcrYYlVviDXjG6ko3ZpOJiREtQfLYY8DgwewEN3YsX/JueTlreQAAzZs39G8KlvsAI1obBAomE5sqim5bV10kghr4+R9f/xyGdTudK/VMsGAJJsNJuAAUwQ5yKCPNV/Cat+l1ic3MZHfKAwYADzzAfiYlsef9DZ6xSnlBei+gUmRG6y561iy2T4AZ5fFQXNxQEaZUSRXoSK0NXnzR1yMxFpMJ6HkdM5Mb9ShLzs1Yzvxc2kRSkq6fUlQRIvt8MnKQiALlC5n0Oc7J8djYCN9A31RfIbm/Kl1cBYFNafA2JQSUL/RSArARAsaosm6esepphCgRHc2M6V57jV9USPusrFT/n0hMmWIvstLSgNxc4PHH+cfpCaKjWdPC1avZ70bw7bfGbMcfSB7QIFZmvgQ8Mh6IaevrUREqWK1AfnEIcg7Ie7PEwYMRbMKvIfHiK4w2b9NKAAZY+NQdDxmjojq8Y83O1h9xKStjImLuXBYqzstjeUNqF3Rpn1OnNjRC1MJWZGVmAu3bA8uX6xurI6Gh7q0/ciQwcyYTbEbl4QTLVJiUzxITY/885bf4LVJVUfqyDnY5LrYUwUMRbMLvIfHiS4w0b8vJUb/Quxs+VYuUDBnCohG8kRjesbpaEl1RwaaDYmNZL5+UFO0LurTPX37hc9yVLurjxvGZ4fFw8aJ7669YwY6/UXeZTYIkJU6twSLhtxSUhmDozM7YkqPszfIVknHSnADRyAg2ERAEydkpgElLYxECdxNsPZ0ArBUpychgD57yRG+FcMvLmeDasAH46Se+debM4d++v9ntnz/Poi9GcemScdvyJeTdEnCkL0vA0sxYu4iLINifggQBsMKM/KlL0H7BUPkFAP4IdiAVOhAUefELJPO2ESPYT1e+MJ5KAAa0IyW22PYWcncMKSlMDLmDKAL33w/885/ubSdQ2LABWL/e16PwLyINyv8hPI4oiigrrsWBzF/r5o0YQ4YoB6j7vGZABDuQCh0IACReggdPJABLuBIpGTdOeQqJZ6wxMcCpU6x82V2CrVeUGsGSo2IkFUHmwxOkiKIIASKil72AndYByEMSBoOJh3/8oyF9bc0a9vP4cRtdkpamsYAK3ih0IAyHTOqCCelLCMiHT101a+I11HNkzhyWQCqH0ljliIwE/vwTuHBB/xgIQupXFB3DfldD7ntDeAWx+BSEZYuAnCwAgLXOb2dMq014/3SaZ2ZwLBZ1E0ZBYDdax4/TFJIX0HP9pshLMGF092YJrUiJEm+8oRz10OOPUlFBwoVwHasVWLqwLknCqr18Td1nLbju6/wTyUhy5XIII1LrhQsAmMCO/xumdM9FTz1d6EB4DBIvwYbe8CmPb4taWbca5eXqX3rbsRrpTUIQjuRkATOfBapOqy8nCECz5sDOz/mEDsGPkhhc9yHwwf/JHm8TRERUn8D98Tmemb3xZKED4VFIvAQjvAnAepLUXHWS1frSS2M10puEIOTIyQKWcfr4hIQA09OBb7/mazPRyBCNOCaVFcDs54DlSzUXDSkr8kz6iScLHQiPQqXSjRUp58TxBCQlqclNM9mWdb/5JltGi6NH+cZDdzaENygv5VvullvZg5BFcCUfSBCAZQvZNHBFGXBgP3d062SdGZ3hbYqkKfHCQnkxJuW8kE+M30GRl8aIO268UqRk3TogyrlRmhOzZ/PdLtGdDeENDuwHSoppSshXVFSwKbn9P3D9D6wQkI9E5CCZL/1Eb/sSo53OCa9B4qUxYkSSmtnMHF21EEW+tgTJyXzOtgThDnqTdwl1zpzRdRytFcqmjo63UlK1UToyYEWDeFAM0mpNgysJG08VOhAehcRLY8SoJLW0ND5HWp5s/S1bgNOn+cZFELzYdpHueR37OycLmPUc5bEYwc/7nZ1tZRBFoLT4EgoPKE/bWWAf3ShAAoZiE7bAXjzIBmm1vFqeeUZZ2Fgs7MbplVeAxYtZ8YAenxjCJ1DOS2PElSQ1Jevszp35tnXihPJrmZnAsGF82yEIXpIHsJ5Gtq0BSopZ5OVMFU0FGEH3a4GVK4BH1DuqCwLwxqcd8LL1dyQjB3EoQjFYR+9YlKAIcfgaffG3sN1odaYIJxGHHCTbRVwU0094psFff935NakvW1SUfZsPqcUJfT78GhIvjRG9SWqZmezkYHtXI33BSzkTICdOBJo3Z+XQtgIIYNvWg9ncuFxzCf1IXaQdJyOiY9jz2Tt8MqygIywc6MR3A9Om8ACsuAO7kKK4TO9pKZg9m/3O3aZIT/sSW6QdOPYnUytaIPwGmjZqjOhJUtMKxx4/zrfP6moWXbEN28bGAvPm6TvxLFwIfPYZEBbGvw7RuGjSBJj6HGS7SJtM7KLVp59PhhaU9L+Na7H0ihn1dv9yJCYCL7zgQvqJ0ZWKWkULhF9A7QEaM3IRlcREJlzS0viss6Oj+aMv7hIVxaI3rtxlEY2D5AFMuLSh5G9vIYoiLFYBJkGh+4LVCpSWwDriXhRY26MjjttNB0ls3twgTnQ1eHa1fQkPWVmsupLwCnqu3zRt1Jix9W2RO0vwVCWVlrImit4QMI7hXYKwpX6qiPAmgiCgibnOuM4q2isYqxUQACxbBJPVgg44gWTk2E0dmc3MecE2qiI5MnChNQ3uDuQ/5bfQtFFjR82Nl/eLO3KkZ5vYmUx8njJE48VkYsm5EKmhoo/Yv/EQUOZwE1NaAsx8zq5nURzszytr1zb0aHUJnmlwVyH/Kb+FIi/+hq54qYf3xfvFvesutu748Z6JwMycifosPoKQo0dP+6oiwuv02v0G8M5+9r+IjFZ00S2qc8u1naF2G8mrRa6w4P775auN1CBnXb/HK5GXN998E0lJSWjWrBluuukm7NmzR3X5jRs3omvXrmjWrBm6d++O//znP94Ypu/R02vIG/vi7SZ9//1MBK1e7V6ExNGkLjGRTYRfcYXr2yQaB5HU1NNXiFYrUHyqXqiI+3+QddG1QsDp8ESMX52s30aFxzlXqSltnz763hA56wYEHhcv69evx9SpUzFr1iz88MMPuPbaazFo0CCUlJTILr97926MGDECjz76KH788Ufce++9uPfee3Hw4EFPD9W3KFX1FBQwL4K5c43LfNeqIJIEDG836bIy9kUfNAiorHR9XBs2yHfDbtvWte1JY46KoqmEYKeCmnr6AtFqZV+tZYvqhYoAZbfcgqcycP9Is2q/WCf03NQ5ToMD2lYMjgMhZ92AwOPVRjfddBNuuOEGLFu2DABgtVqRmJiISZMm4bnnnnNa/r777sO5c+fw6aef1j/Xp08f9OzZE++8847m/gKy2kirqkdC8lZx50vFU0GUkMCEg/SlzswEnnySiRtPYTIB69fbT35L01pffAG8/LL+bSYkMMfMQ4eAWbOMGyvhf5hMwJb/AeER8kJVzjSE0I/okFNUfIoJF5ucFjnykYgXW2Xg/dNp+oIZSg1kpTFoiQzeSqTFi5l1g6en6glV/Kba6OLFi9i3bx+mT59e/5zJZMLAgQPxzTffyK7zzTffYOrUqXbPDRo0CB9//LHs8jU1Naipqan/u7q62v2Bextek6WCAvfNk/T0NZLuXFJTmZiZNs21ffJgtQLDhze8N7kybr08+igwZQqVVjcG+vVnwkUVGd8Xgp+6yiHre8uBwhMwcXSGXoqJ2IwhzC33rBmpW3VOFak55wqCdptp3qKD2FgWrSECBo+Kl7KyMlgsFsTG2ifSxcbG4tdff5Vd59SpU7LLnzp1Snb5+fPnYw5Pfx1/Rm85ntYXVi0RV29fIyNEhER4ODOrUyM9vUHIuBsUDPTPBcGHXaWRgjgRBAAUcXGL0hKIyxZByMniPpKbMaS+LJpHa9jhyo2WI660QiECgoC/DZk+fTqqqqrqHyfUeuj4K3q+OFodn7Xmh/V8mZVyY1xl4kT116X39thj1DSP4EeqNKKoivEsWwTMfQFIfxwYkao5PSRhhYB8JCIHDdU6PM3q7TCigaxW0YEgsMIAqioKODwaeYmOjobZbEZxcbHd88XFxWjXrp3sOu3atdO1fNOmTdG0aVNjBuwrkpOZH7aenBK5L6zS/LBtr47UVPV9STkvffuypotGighZ+00ZqqqM2ycRvJhMTLgk3+rrkQQfoghUnQYy19tNC/FEXKSl05Eh66TLHWg2ImoiFR0MHerc/ZqqigIaj96qhIaG4vrrr8eOHQ1N0KxWK3bs2IGbb75Zdp2bb77ZbnkA+OKLLxSXDwrMZmDcOH3rOH5heTqrpqcDW7YAFy7Ib9P2y7x7t3ERF+nuhmy2CaNIHgCs+wTIWA4Muc/XowkupPPFwvmq+SxKVCAKQ7EJWyCf3MIdaDYqaiJ5wOhqmET4Ox43qZs6dSoefvhh9O7dGzfeeCMyMjJw7tw5jBkzBgAwatQoxMfHY/78+QCAyZMno3///li4cCHuvPNOrFu3Dt9//z1WrFjh6aH6li5d+JeV+8Lyzg8PG6a8TGQksGIF+zKvXcs/HjVsBVFysvdaCRDBi1LHaMdKGMJ1qk4DX+9yadX7sB474dysUbfvm5FRE61WKETA4XHxct9996G0tBQzZ87EqVOn0LNnT2zbtq0+KTc/Px8mm+mEvn37Ys2aNZgxYwaef/55dOnSBR9//DGuueYaTw/Vt+jJe5H7whrRg6N5c/YF1zseNaKjWfuAgwdZZIiES+NBmtZRcVvlWsZxeaXkXOkCRwLGPQQBaN2G/V/2/6BrVVEwIUdMNm6GRs05V689r66GSYS/Q12l/QXJf0WtuZjUwUyuEYhRnVWlLqoXL7IThDtig6e6iAhOkgcwkWFr2V9SDCxd2JD0ybOMo7gRBGCxtt+TE9J3ioQNP3NfYE65dYjgy3n5ck4WRr6botis3iW82TaF8Bl+4/NC6EAtRCqh1sHMqM6qO3YwwTJ1qvtREhIujROlaZ3oGPb8zGfZ3zzLOIqbc2ddHxcJF304uBaLECA4eec6c0uXIuTlGaw1lKImJGoaLRR58TfkfFV4b1ukaiPAOWZr5L85Jga46Sbg00/l56KD6yNF6MFkYom0MTHypctWK+s0LAjqy1RXARGt4ZaxnNXK9kOiRR/S/2hEqksJu5gxA7jtNs8LCblzpREu5ITP0HP9JmMEf0OpuRjPl1Etq37DBr4mi1rExLCTxb//zZomOu4rmhrkNWq0PFdMJiC2nfYyrduw393xbjGZSLjopc5F17ZXkS3liKzvU6TIP//p2aayAH9/NiJoocgLL4EUnlQaq1JkRi9SXozcvgoLgQcfdPstEAHKrbcDM1/y9SgIV6moABa/omhG9yLmYA5mAwBMWlNIvP2H9OJKfzYiIKCcF6MJtPCk0vywUua+Xmwrmxz3lZ3t+naJwIe6Owcs1rNngeF3wXSp1vk1CChAAl7GCziEa5CByUiExjmEt/+QXoxoG0AEPDRtpEUwhSctFubl8sor7kVH1MqotYyliODmwH5WMaSUKyGKDQ/Cc0jH+P3lwP8+41pl5y4Aly45TQtJf0uOuXsT07B3Qx5f7zDdPQE4MKJtABHwkHhRg9e11mLx6rBcwrbn0YMPAqtXu7YdLUdLqWoKIAHTGLFaWamzIDgLmPq/VbxYSNQYx87PgdXvA3u+4Vr85x8uYCg2oRD2eWxCQgIOzdmEYWvS7FPw3n2XfyxGCglqtkiAxIs6esKT/oyRDRbvv98+/GuxsKmitWvZT4tFOXGYaBzkZLFS5zKHUvuq03XVPyqnHRK8xiAIwG2DWOVXfALXKpPLZwAAkhPy8OWchoIBIe84rpmZhhEj2CyM2Qztc6MjRgoJarZIgHJe1AmG8KRa9MgVFiwA+vRhAkUrFyg1FVi6FJgyxZh9E4FDThazl7c1mIuKAV78p69HFtw4OgxHxwBjHmfCMSxcvjlqXWm0cGA/1sSkIyQ3FebQFPX96DnnGS0kqNkiAYq8qOOL8KRcJMMd9N4hAepfelFkU2UbN2rnApnNQGys7GaIRoDVyuzld37OfpZTawiPItcawWRqyH9RmsqrK40WrBY0Kz0B826OSLK77UzchZotNnoo8qKGlmut7k5jGniiqsmVqJCWYDpxAnjiCeVcINsKA5p3JiSkZN7oGPkIAOEeStMokm/Oe+8Adw+2dywuLWGeLjal0dbCIpi0rCF4HL3NZnYTZnvuUtuuXjsKarbYqCHxooY3w5NSXorjiUCKZLh6N+Ep8VCmUhJrmwtkVNsCIvCRknnnvsp+JwHjOtJ36ef9wPka4KY+2usUngDuv0ezEWbxh58j7smJzPNFwvEmiqediWMfNrWbM8C1GzdqtthoIZM6Htyx7OfBk6ZLPA0fPcWaNcCIEcaZ4xH+hd6O0BJyDRkJ10h/nP3MWK65qPj+OxD+9Z7y63U/ZeM3SoZzvOdGpZsztXYinjK5I/wWPddvEi+8eNJhl7cjtK2zrZ7xKZ04PM3DDwMPPQSUlABHjwJvvAGUl3t3DIRn4OkIrUaTJsC/dwLNm3tujI2BuS8A2dvr+km1VS9BLy0G7lfvV6TaOVrpJkrr3Kh1c6YGueU2Kshh1xN4MjzpblWTVq6MlNz2+OPq0z1G88EH7CFB0wTBAU/XaC0BM+JhEi5GUFHGxMi/twCPjldeThCAtu1YpGz/D8qLqe1LyblW69zoStGA1j6JRg9dTfwBd6qaNm4EhgzRdgBOSwMWLeLbT6tWfMvpxZUOtYR/YTKxiItct2epsmXiVHWhajIBQ0d4dJhBj9UKFJ9iU3UAy2fhIdKAxql6iwCMsJLQ2obRVZqE30PixR9w1XRp0yaWUyKHnAMw75RN376sBFFtPJGRfNsiggvertE9eqpvIyLCA4NrJEgVfZ993PAcb08p2+VMJqDndayZZs/r+COjbdtyDxWAMUUDatuwdQ9/4AHPd7Qm/AISL/6AmqW+UlVTZiYwbJj6HYajA3BMDN94Pv8cuHBB3jdCSrD780++bRHBBe+du7Sc3AXSiLv/xowgsMcj41muS/IAWA/8BLGkGKJSdNMxUpM8gK2bsZx1Ac9YXr8tw3Gn35mWW24w9Z4jdEHixV/QY7okuebyIoVc9dj1S2WSjhEW6e8LF/i3RQQPeu7wlS6QCYmeHWNjoi7PqLzfYKxbWgBBw4gOVmtDzpLjzYyUs6QlYEpK9I2R5+ZM7TUlO4pg6j1H6IbEiz+Rlgbk5bGqorq+Ig1d0Gxwta+IdAfEgxR1ad4c2L6djWf7dqBpU/79EsGHVtdo6Q4/orX8BTKmbYNdPeVA8aFWJWgywSoC5yfOQMuvP5PvKVVaAsx8jiVRG5Gz5Mo0kNrN2ebN7KHXLTdYes8RLkHVRv4GT1WTngS4hAR257F2LTvpLF4MDB/OXtMqnRZFdnIwm1luTXY2cPIk/76J4EPNaE66w39zMbsAyl0gpWnHJiENdvVUhaaM3NStAyaTgA6xtYjvUQTkfO/cU8rWf0fKWVLeWEPOklxVUlQUO59YLPpLl7UccfW65QZD7znCZUi8BCJ67nzOnwcGDmz4OyEBmDaNiRne6I305d+6lX+/RPAidY129HmRrObPVKlfIAUBaNkSOPgTkNQJaBXm+TEHKjryRMzSlK7UU0oOvTlLjpSXs/OJq21L1G7O9NpR+KL3HOE3kHgJRHgs900mdhJzrDAqKGCdodevZ+vzdHyOi2OJbxkZbg+dCBLkukZLd/i33s63jWuu9eQIGx88+Ui8OUuWS+qvK7Ut8aSZpyPe7j1H+BUUrw1E1BLgJFq3Vl5fFIGnnmLNFbWqAKKigIsX9SUIt24N/OtfLEdm+3Zg9Wr+SicicHDsGi1NTfBeIAljcKwkUoMnZ6msBHj+WVZ1qGSJIJcQ6+2SZVeqNImggcRLoKKWAHfHHfZN1eQ4cQLYvVtbBJWXA4MG6UsQfvddoH17liOTnQ2cOgWUlmqtRQQqjuXQhw5SMq63cKwk4ll+6cKGfCO5bS1ZwL7zw4apn0dsE2J9VbKsp0qTCCqot5E38GQoVdp2YSHw3nusQomX1FSge3c2lvfec93CW0IQgHvuAb76yrgeRpGR2kKM8B1yPY4qK4A2ZGKoC+k0rNcLpfgUEy48/aRskfu/ubqt1auB557zTGNZXrw5XUV4DOpt5E9o9R1yF7OZXdzHjwfOntW37tatDUm4kZHAzJmsGunMGdfGIoruJ/VK1Sjp6UxcXbzI7gIJ/0Opx1HrNj4ZTsBitbLP/blzfK05zlQD//03sPtL/k7ettxzD9C/P3ChAjhSBHz2XyA/z7VtASyqyluy7Kn+RJ7sPUf4JSRePIlSN2elZDdX9zFkiHvbAJgAmjvX/e24S0ICm6eWjsucOT4dDqGAml+IK06qjZkz1cCmdcCpk8ALHN/BJa8D27e5vr/du4FPPnF9fVsSE/nz2ahkmTAQEi+egsf9cdw41uMlJcW1EKdep11/5skngY4d2YkwMpK9t61bgdmzfT0yQg4tvxCCn4jWrCN0Jef0aJlOh1un9Q1MqL7/fn7nbipZJgyExIun4HHBddczwZ1W8/7EFVewCJLj1Nr5874bE6EO9ScynojW6rkvVivz0uGpKvIWCxYAN95IJcuE16FqI0+hJ0Tqaka+L8KwnpgS+O03ZxFWUGBc0i9hPLzl0MFVD+BZJHt+QLs/kT8xdSqwaBH7nUqWCS9B4sVT6AmRutpEzBdhWLoYEYC2X4iElIBN8GEysWNWddr+edv+RP6ElIwbE0Mly4RXoVJpV+Apy7NYmEGTmguuHFlZ/Fnzevbx978De/a4Pt8tOfYShIRUbSSK1J/IaObNAMpL5fsT+SNr1rD+Z3LnRoDKmAku9Fy/6YyjF14XSR4XXDn0TAXx7MNkAp5+GvjsM2D5cv5t2xIR4d8nTsKzOJrQSUIlJwuY9RxFVjxBeam8e7E3uOsu/Y7YUhRYKlkeMYL93LrVu667RKOBxIse9LpIKrk/qqF3KkhpH61aAaNHs6TX115rWHbzZmb5z4MkiP76V31jsuWGG4CHH3Z9fcJ3mEzAQ48CWz4HMpYDM19iP9d9wqIuAFB9uvHeRYui8cJNj9W/JxAE4Kef2DkuK4sZ0EWrJGcLAiuXlkvGddd112JhDt1r17KfeqbUiaCHpo14kaZoXHGRlL6Ew4cru8W660LJO5UlufGeOsXGYjKxO6SKCpZ4Z/v+JJHjTuJsdDTw1lvO2yY8j8kk3ziRh+QBwLTnWQWMI5Kp2sxngZAQJmoaI6664tqub7uu1QpRAAR/yG1ZvBiYNImdQyQRAtiLNWnstjkttueY9HTlaWqt852nzT0Jv0TP9ZvECy/Z2SzkqYVazoqek4AeeISL1slAEljZ2ew1s5mZ1hn18bjvPtbJ2lUo8VMfcvbvJcWsr01OlrqwqXfOhfKFWSrbfW0usPAtT74T/8VRfPAsDwAb1wBnzwB3DTbGnt9T2J4f5M4fiYn2hpJyy2ghd75UMvd09zxJ+D0kXjwhXtauZXO2WkiJa0rwnAT0wHOHonUymDaNvT/bbZjNxodpSYB4B1vbflv3Wylisu5D4LZB8sLm611sWiimLd+FuTH2MbJaXUtQlj77M5/VFpD+gKNYULtJUjrHaOF4vnQnwk0EPCRe/DXyImFUEzGeO5TUVPWTgbuEhwO1tWQo5y+YTHXiI8bZth9oEDBKwmblcuCR8fz70xt9CHTcnSqSIlYjUrmFighm8eITeMSCluBQw/F8aeR5lgg4fF5tlJeXh0cffRQdO3ZE8+bN0blzZ8yaNQsXL15UXS8lJQWCINg9xo/XcSL1JMnJ7EusdNJSS1xzxDEj353WAGrtB9LT2cnAU8JlxgyWK/Puu57ZPqEfybZfTrgADT4ijq9LBmlD7te3v8YkXCRqLri+rskExLZj/ydO3DnCbt+Z2jZVVMIVp2+l8yVvtaU3DTrdSRympGOP4ZH2AL/++iusViuWL1+Oyy+/HAcPHsTYsWNx7tw5LFiwQHXdsWPHYq5Ng8AWLVp4Yoj6kcqShw51nv7whYuk1glDOuns3Om5Mdx2G3u/eqqplBAEoHlz4M8/3d9WY8Yd236TST5Bl2hAEIBmzd3ejBgZbUg0Rax7yElV6QxlufsemP/tZiNGNbGgV0ionS95qy29ZdDpTuIwJR17FI9EXu644w6sXLkSt99+Ozp16oR77rkH06ZNQyZHbX+LFi3Qrl27+ofHjOZcQaks2RcukrwnjKVLjd+3412TVlSKB1Ek4WIEvLb9alRV+VfuRRAiuPJ/Gj8eWLUKmDABeOIJHJuwGPdhHQqRIL+Pukfttz8ATz3lXPKckMDsFHhQEwt6hYTa+dLICLe7uFPq7W6ZOKGJ13JeZsyYgW3btuH7779XXCYlJQW//PILRFFEu3btcPfdd+PFF19Ujb7U1NSgpqam/u/q6mokJib63mHX0/DODXuKDRuAYcMa/nY1YY8wFinnJTrGddfb994BHnmcnHNdQfr8Kx07F3Je7IiKAlasANLS6msIhmATNoJ9F+Uu+SIAQRBYtV9MjLP7rZpLt2POi5KDrtY2oqNZ+XV8vPb50lNVmXpw1xqDko5dwuc5L44cO3YMS5cuxeOPP6663AMPPIDVq1cjKysL06dPx4cffogHH3xQdZ358+cjIiKi/pGYmGjk0OUxImfFXYyIdrjD1Kn2dw+uGPIRxmO1sqohQZBv7qdmrCYZpH20klXElJV6frzBRmkxq+ZSOv7uNlcsLweGDAEyMxEXB5hgwWJMUU3qFQD2P3/qKXbesD1vqbl0O07vKLmLb92qvY133gFGjuQ7X/pDhJt3Wl4uF8iddQludImX5557zimh1vHx66+/2q1TWFiIO+64A8OGDcPYsWNVtz9u3DgMGjQI3bt3x8iRI/Gvf/0LW7ZsQW5uruI606dPR1VVVf3jxIkTet5S4GJ70uFFzSlTL3Lhz7Q04I8/gDlzjNsPoZ+cLHnxUVrCLqyA9oU1Jwu4/x5g2UKvDDlo+N9nwHdfA7Ofkz/+RhnQTZ6M5L4WpEXnIBEFfCdy2wumbSJpZCSLyqiJBa1pEMBYwZGWBuTlsaqiNWvYz+PHvTc1707isD8mHQchuqaNSktLUa7httqpUyeEhoYCAE6ePImUlBT06dMHq1atgklnCPrcuXNo1aoVtm3bhkGDBnGt45XGjP5EZiYwdqyyc68tq1ezk0tREdC2LZvvdqcSSQp/HjsG7N5tH0reulW/YRVhLEo+InIGdkoGabfe3ngddN2hpJgdz+rTnvNxycrCnq1FuDGDw39KYvVqlhgvl0i6eDG7wXGcDtczDQL4fkrdCNwp2aZyb5fRc/3WVW0UExODGM6GXYWFhRgwYACuv/56rFy5UrdwAYD9+/cDAOK8lVkeiKSlAQcO8EU74uPtvywjRgCvv+76vqXwZ3y8vQ24lFGfl2d/IisuBiZOdL2zNaEPq5U19XMkJ4uZ0fEYpBmRANwYiY4B5rzCImA7P/fMPoqKcGNqHJChY53t24EPPnCeOiwsZO1LNm1yNtnUMw2SkhL4F2SLhT0iI7XbucglDktT+lp5RN5IOg5iPJLzUlhYiJSUFHTo0AELFixAaWkpTp06hVOnTtkt07VrV+zZswcAkJubi3nz5mHfvn3Iy8vDJ598glGjRuGWW25Bjx49PDHM4CAzU1u4yGXob9zonnCxxVGMSKHkrVvtc4Puu4/1VJIavkVEGLN/Qj+SsNHqWnxgP4siKL1OCdrySL45E6d6LulZimwkJPD7uWzdqu0N5ehF0pimQaS8noED1YULoGyNoSePiHAZj3yrvvjiCxw7dgw7duxAQkIC4uLi6h8StbW1OHLkCP6sK48NDQ3F9u3bcfvtt6Nr16546qmnMGTIEPz73//2xBBdx59MhySjOh5svyxyd1dGonYilJKdR46kO49AQC0B2LaypjHBO/XjgiEdN2YzUFpaf6HkTtuvrFR+TSmR1N+8VzyFUl6PIzx5PP6QdBzkUHsAPfib6RDv3OqcOcDMmez3zExWreAtlOZ1LRagXTuaQvIFrvTUkW30eApoGQa0aBGYTruOrQ04Wx2I589DaK7DqG7uC56ZOhKEhgvhxo3shkTtZioqiq9DvFK/Id5y6kCEp8VBZCSziNBTYeoPthoBhMdyXho1Sj4m0hSJL9Q0b5i2Sxf2U0+kxiiKiuS/wDk5JFx8gVq3abU8GLk8GUEAFr/jgzdhEOf/BFq0bPj7dCVXk0lh3YfAT/uAXjcADz+mvZ8ED9o3pKez/mXDhrH/h633koQkyJ58Epg1S3ubjhEUb7iL+/oiz9PioKKiobycFynSTBgOiRcetPoICULDScSbXzi94VxXepAoER4OVFdrL3f0qPMdTUIC0LOnMeMg+LHtNm1LdAx7vrrKvj2AkqjJ3s5Eza23e3HwHuCFaYBobXhfBw8Am/8LhEcoR2BEEbjzHuDD95i4+9vd6h24RRG4615g9UrjXYsdE2WHDgU2b5aPDmdkAHfdBcydqx6dMZuBvn2dn5emQZS27c6Nmz9EtBtTXk+QQOKFB73Z9t5Cb1a7EV+8Vq2Ap59mj7Aw9ROhIACzZzuPraCASqi9jcnEIi6O3aSl10SRXbRt0RI1gVqJJLnc/iSTqLxpHfCoSjNYQQDa1uWx7P8B+PcWfct7AtvvdVoau4mSi2Lw5OhZLMz2QO48prZtV/GXiHZjyesJIki88OCvqlxvONeIL17r1sALL7ATmNaJMLjSqQKba6+znypyRC5yoCVq1n/IPgM8Fy+rta6btY9zY0RR3eW2kNPkUmqAqXd5TyA3zSMnPnjPT1KVoBxGToP4U0RbuhHU8rKhIgO/gRqX8ODPqlxPVrsRLQUKChruvHwBJbvpJ3kAMPsV19aVExySqLnvIb4yYFEEamo8J1z0iOTTlcDGdcCZKvmx80aTpOX0Lm8kak0K5aoiec9PH33knSpKf7LRN5u1KzCpvNmvoMgLD/5uOsQbzlWL1OhB2ocnGTqUva+2bdnfJSXM5G7KFM/uN9hQynNxFz3eJYLAXF09BacoEq1WCG0igeEPsIc0/WXrKiz52ig1tpSmnA7sd215o5G7oCrlkEgOulqJ8qWl6lPgRiXX+lNEOzMTWLBA+fVp06i82c+gyAsPgWA6xNssUilSk5jI35NIOmFFaldmuMyECey93HYbe4wYAcSqTHsQ7OLZ8zqWSNvzOqBJE+U8l0aI4Pjdlaa/km3sBup8bUTexopajTDdbcSoRGKifD6IWg+i4cOBPn34tq8kGOSaM8bFsbHoxV8i2mrTVwD7365b51tPL8IJ8nnRg9wdTWKi+9n2vsDV1va2fg5z5/KVXupBENjd4eLFTGBJ48rJAd5807WTZGNArgS6soKr9LdRI0VGRqTaCww9/Z/0Lj90KHDNNcCyZa7ZBcyZw/LOHG9QeHoQRUezyIoWcv5MSsm1Ek8/Dbz2mva2Hcfra/8Y6kXkN+i5fpN40YsRIVNPehq4u20tE7vNmxuEmsXCoiE8xleuEhXFfnpyH4GO7dSQbYSF03SNAJD+uHM1kMkEsUdPCLxmfnrN/+Ljmd3AmTP6xpqYKH9B570I80wdbdzY0C0a4DNxA5iJm5zXjBKSIALkCw68UW20di2LImnhaN5HGI6e6zfFkvXCOz2jhFzYNSmJPe8unty2HGYzsGKFZy+Q5eUkXNRQK4EONuEiip6rYJOrBpL6P2V9od7/yXF5rX5REidP6hcugHISK29uCM+FeupU+2kSXo+oCRP0Ta/4g42+v0xfEbog8eJN1Oajhw51T2QobbuggEVStMypAG0HXql00XY70snH3fwXT0TJJKI9WKbqa3r0ZFMVjSGnxZOl1grVQALg/Plp1Yp5HLmLJMRc+ewXFjo/x3tx7dhRexlHgcQrjEpLWQRID2lprAN9VhaLbmRlsciSt6bitaow1aq6CJ/RCM54foKWpwEg38jQ3W1LzJqlHYXhLV3MzmaPjz5i+T7nzwPPP69/3LbwuPW6QkwM8PDDntm2P+Ap/5BAmk12HKuesVutLDdFrRpo8WL7C+vp02zaxShRXF2tf1tyeSu8F+GYGL592AoWPVGH4cP134jpiWgb3Rw3EAoyCCeoVNpbeNKllzekW1Dg7FppmyNz6BDf/oYPl28Xbzb7X0Z+YiKwcKGvR+E5POEfkr0d6H+bfONCwKVmhh5F6YLjiMNYRauV/alVDRQf7/ydNLo3V7du+vxM5AQIr2klb5TUVrAkJ7N98iT7VlR4zh3XU60EPNn+gPAIFHnxFp70NNC7jhThccyR+ec/+daXEy6A/wkXAPjBQ5bs/oLkM2JkKe7vx4BzZ51FwJ9/sudtkRMKeiIf//o/YMMaVhnlaRzHWlYCrFwBhISw0nJHnxa56QLprn/zZmPHpteIzTFHREIphyQ+vkFMuDJNYjYDb72lb4yuRpKV8OS0O+D76StCFyRevIUnk8L0rCNFeF56Sf5E4Al4w9SEftR8RvQiJcSOeRxoFeb8WosWzs/LoScSU3sJeGsxMORvrOJn4xrPJuZ+8H/A3BeA996BAAF4ZDww8yUgYzmw7hN7zxdRtJ8usBX7y5Z5Znw88ORfqE2luTpNMnQoK4fmwWh3XE9Ou9vibkEG4TVIvHgLTyaFuWL7v2SJ9/Iali51vy0BoUxOFjDzWaDMIaSv9P9VEgdq/x9P/O+kjssmU0OlzpuL2XspLbFf1mJRFmdWq3I00JEf9wK1tcAjjzuLakfTulatGl5Tuuv3NoKgnn8hjdMxoffkSfvohKtVPq+9xsqheROWjXLH9adWAoRfQD4v3sSTngZaBlLuEhXlWsmyZDS1aBHLlQGc33twfQR9h63PSEIii6CIov10iD/kqDgi57HSpAlw71AgLgEoKmC5FrPnO78fycV21nRg4lRtm/6Rg4E1HzPhIlehJWdat2EDKx32tXCJimLWBErnCB6TOkfTNx5fKLllsrOBgQO1x2yUsRt5sTQK9Fy/KWHXm3gyKUza9pNPypdRSggCS9jjESIzZgBXXcVOWBYL38nKEemOKDpa/r3zOn4S2kjRC4njvzu7vnpDuFit+nofOVZMybnVlhQDX+0C+jpEJkURWP8R8OVO9vvcV533b2vTf00P9e7aJhMQ246JQOlYTpjg289oZCT73si56triSlGAVpdopQTZRYu82++NvFgIB2jayNukpQG5uaz8cuJE9vPYMWOSwtLSgD/+UO5RJF24nnySb3tST6GUFPZwZ+qnqEg+IW7xYte2R2iTkwXcfw+LbMx9gSXHehpJKFSd5o+o2VZMSW7BclM6f+kvn1R7/0NsPaXps9ISYOZz7HXe0nLb5XiFS9OmfMvxMnEi+46UlAAzZ2rnXxhdFKCWIHvffQ0RDm+UF5MXC+EARV68jdydzMKF7pf6SZjN7ER3zTXKEZ7UVODdd/XdNdmWYbqCdEfkeKen19CKFymPItjRsqS3jcb0vA4Y9Zhnx1NawiIcABMhatNU0hTNwQNsbNFtIU6YAgAQHKd0TCb5bUn/54lTga93MYHy9S7lY8JbWu5KCXpNjf511BgyRD4qojTVY2R0QitBVmpWuGED6/Tu6fJi3jJwSrBtNFDOizdRykvxVB8PtflsV/Nv5MSXGlrN1Xias/FOc0nMmcN8M6Qcm0BBb28cpemVpQvlmweaTKyiJqateomznuia1cqiLMsWAeWlDWOu77eksD1RBCAC61YDtw1Sn8rhRS53xpG6YyBGx0BQy41xbNTYrBlw4YL7Y+RFqX+Rms9JaqpxjQ71NCtMTvZcrzZHgqk5LuEENWb0R/HiSjKdp3H1RCCJosJCFlI/fhx44w3n5XhFmZaQmj2br3t1eDiwcmXDvjzR9dpT6BUiSs0YrVZ23GY+a7+eJIz63gIMq0t8dBQVepN5pSkiaUrGdl/rPlFOigXYZ2jjR8B9Dzm/B1eZ+wLrK6RF8gCIdVEhQS43xvb9CEJDA0VPuUDLYdsAVYLn5gcwpijAnxNkPdnYlvApJF78Ubz4a9t1o04E7t4Rqa2fmgpcdpl6IjLAxF9eXsP4eU/AvsYVIaImDhyjB3LCyGKx/z9XVgChTYGWLfnHXXyKRVwcxVXP65hvihaVFUDr1sb1ZeKIvJQhEiGoRVhyb5gcj4nj+9Erno1izhw29WuLnpufrVvdj04Yeb4isUFwQtVG/ognHXbdQavagJe0NCYy5E5SPCcvtfUBYNw47QtIQYF9JUUgVB6odYV2zOeQpjGkZoxq25QqZsIiGoSRLVLewMa1wO5d7O/F7/CN+X+fAaeKgP3fAz/96Pw6b1JsG53NPJUiQ5JYU+hPZAVQgUgMxwYIAHZgoHZuDNCQu+FN75CEBFZV5IieSiKt7xIPUoKsu9VEnrLzJxo9JF68hbvJdL6+e+HZv5wQ0nPyUhNSXbrwjVMSfxYLe0RG8huY+QI9QkSKKvCKg/63ASkDoSqM+t8KvLOkbjkOrFZg0J3s94cfk5/a8kS/JSkK5ShgbMugZfKDpGeWYDJiUYI+YYeAMzbrKkVqZsxgEZetW5mAMYJZs4CqKrY9paTTJUvkv9d6b37cvSkxIkFWaZpLsvP3RO8jotFApdLewp1SP8ceRAMGaHeINhJX929kLxI94k8a78CB/i1cANdKd3nFweDhLLqhNC1jK4x4t+n48XV0pQW0+y3pccSVKC0B1n3o7LxrWwYtN9yoKFwKj8I8zMJaPIDJZzj7d912G/s5ebK+caqRksKsATZv5ne2lXop8TZNNTLa6KoLL+A9O3+i0UI5L97ElQofb1coOeLq/t1JUJaL8gB8lRQLFzIPCiM/1p6M3vDmh/zr/4Af9jZMjaz7RNlNVm/i7dwXWCdprW0C6tM2thU6Uh6Pq464AGC1AC/Nsq9i0lGRlXvLGHTOWeXaZ2HjRmagyJP3wUt6eoOvEU8kU09lnycT/l2J+vprjh/h1+i5flPkxZvovZPx9d2LO/t3tReJUpRn61blZnLS9hYsYDbuaher0FDl1+QYMgRo3lzfOrZoiQitKIX0XkY91tA8sF9/5WaMrtj/V5SpN3iUtqm0XdsIjoSSYdyZauD9FcBX2cr7k/5e8DKw439sakd6Tprq2fm5/fMydPhxq+sidupU7QRxiT59+Jb76KOG74pWA0A9vZQ87XPiSrNCf83xI4IGEi/eRk/bdV83I3Nn/66cvLSmmQBmihWtMNUycaL2yf7iRb5xSfzlL/wXMTnWrgW2b7dv8meLlmhwRJqmAeTFgd5S5+JTDdEcJcFRXcW3PccpMMnh9/13WK4HAES0Bh4dz0SY0nsoLQGytgH/+YT/vcgQcsaNaNmJE/zOuv/8JyvT16K0VPu7arEAO3YAY8fyCy+eaRxvQ3b+hIehhF1fwJtM5+u7F3f2r/fkxePoOW4cMwtTuqgY3X8mMdHZpl4PTz/NprCys4GzZ5WXk0SDY+kuoO4oOyK1oWIm+VZgyH38Y1NKdJWrwuGtRJLLm+nXnzWIdKx2kkTYzGeZwHGcCmrRgv+9OL41CKht1QZNz7o51Xf8OF/FTUoK8MgjfIm9at8pvQaQDz3ELARSUvxv6sWoaiWCUIAiL/6Mr+9e3Nm/3gRlnihPebl7URA9CAK7GDlO8fFgMgFPPQXMn8+Ey6uvaq9j24fog/9rGIPS9qVpGmkaJWenvjGqJbo6Ts389KN2Aq5NBKf+UqVVBi6KTIQBzlNBamJPBSsECACaPm1Aou0bb/D370lN5dum0ndKzzSRxIcfsqjPwIHeTeDnQapWArzT+4hodJB48Wd83YzMnf3rPXn509x3VFRDGD45WXmaSgmrlSUOx8aynJ1t2/jX2/8D8MdxvuVtp2kiWqvnPlmtzBTupZnAsoXAimXAmSq+7s8qU1uiKEIUBLsITv1/WyoD56l2sntfOv1fbBASEiBs3sS8UtxpJCoh9e/RylOTviuKA1P5rqhFHXlxpYLP07hTrUQQGpB48Wd8fffi7v5TU5lXRps29s/Lnbz8Ze579GiguLhhbGYz8OCDrm1LTz8mW/Q2D0weAMx+RaVqp26KaNunwNgJwMSngBf/2ZAAbFvmrIRCPsyJklAMm9kJ6Tn3OK+jswxcrHu4VJ58771AVhaEvLr8MbXPrh5OnGDiVStPTdqfWmKz0ndFK+rIg7+WH+vJ8SMIHZB48Xd8fffi6v6lqqFZsxrKjCMjmfW53MlLK8rjLW6/3fkCwzsl4C5hYeynRgWSaLVClKZpTCZg2vPsBaVjJ4rA+o+A+x9yzuGR82lRIicL1vvvgTX9cXw29ytMST+LR0aUISTnc0RCRqjpFGFliMIvcza7FjWZONG5Ekbps6uXoiK+ihtpf3KRI7Vo0tat7o1PwjGBXvKIWbuW/fSVqHGlWokgNCCfl0AhEBx2JVz1hlHywfEmcr4TWp417mDrW3L3XcBT6Q3Ot7NfYcvYXMTFOqfZ8pmvITpnEzDqUeCR8dr7UesjpNRJWYZLMKMJOC+CUg8mJS8Xm/2+b30IY/EeVq8xszQTpc+QHFFRLFqm9Hm0/ewePaq/T5EeL5LMTFZe74jSZ99iAdq1A8oMdCVeswZo2pRs+YmAg3xeghFf373w7t8dbxi1KE9UFP9YW7XSH8Hhzd8xkuQB7OKesRyY+RLQ62bgi6+Byc8AE6bKTkGUlVoxZObliM1Zh1tNWagdOZZvX7xOuwpIUzomFeFSP+0joVYGblPtJFqtGIgdAJi2ANDwWVDLI5FYsYJPuMTFsajO5s38eTWCwC8spM++HEqf/Zwcvu2HhzMfIx6OHjXO2Zog/BQSL4SxuOtNIzdHnpfHLlC8PP00+8krYHjyd9LS2IXHKCQHWsdpHHMTYPAwIKat3dNWqwirCPzjzSuwJacNrDBj+EvXIaSpgSJWJUdFqHuonTCkZewEjJJ3jE21kwCgAwqQjBy8+67Ntd32s5Ce7pw4nZDAhIjW1KWj4SHAknB5EEVg+HC+C74rn33eRPVbbmHHQCuBPiGBfVfIlp8Icki8BAL+MnfNgxHeNHJRnrQ0ZtmuFXFKTGR313IRnMREJmwc7+Z584eMyn1RKyGWcLhAmUwCIAKLJpxAbKyIjRuB8Y/U8u2Pt+zYoIaKTpdW2zLwuS+wnyNSncq041BU3xi8HumzsHgxcOqUs6hVEy5DhihHHyoq9OXV8FzwXfns8yaqf/cd+6mVQD92rLqdgKeNLQnCS5BJnb/jqZbynsqh8aQ3zdChTMANH668zGOPsZ9paUxsyL3H+fMbnm9bF+EoKWHCUO04aBlv8aLVSVoBkwnoEFuLwl/OwBwVDpwO4Vtx40fAnfcq5p5YrSLOlJ5HhOS06wnUOjjXUQT2mVDUALzmjhYLMzSUQ/q/TZ3KBJHaZ8l2HemCr7Z/Vz77Uim+1tSR5M4rTafJnRMyMoCaGr4x+JM1AUG4gMciL0lJSRAEwe7xyiuvqK5z4cIFTJgwAVFRUWjVqhWGDBmC4uJiTw3R/zGyK7Pjdj3VpVqvN4xSVMnx+YsX2c9Ll1jFklIFyaxZ7OKwaZNyno70fNOmrDR64EC+42BU+S1vCbECZktdxKV5U+2+SKcrgQ/fV8w9sVpFCALw/rJKVIlhbo3LVawQkI9E5IB9Jtyumn/pJe0y9YIC1qlZqTpIDq0Lviuf/ZwcoHdvfftXKz/2tbElQXgJj1UbJSUl4dFHH8XYsQ0JhWFhYWjZsqXiOv/4xz/w2WefYdWqVYiIiMDEiRNhMpnw9ddfc+83aKqN3OnKrIY3ulTzds9WiiqNGMFEi+3zZrN92D4hAejXD1i/XnkcTz8NvPaa+hhdOQ56bdwd4e0krYDlmitY5CUjA8j8RL57s/S+Zj7bMD2TPMCpBYGluATmZQvknXa9gLVukmkoNuFjIc39xsgWC4um8XYBl/JIpk3TXlapEs02uldaylpCAPo/+67s3xHpvKFly++J7tME4Sa6rt+ih7jsssvExYsXcy9/+vRpMSQkRNy4cWP9c4cPHxYBiN988w33dqqqqkQAYlVVlZ7h+h9ZWaLITj/qj6ws/m1euiSKCQnK2xIEUUxMZMu5y+bNzvtKTGTPS68LAt97VBorz3IbNrh+HGpq2PFds4b9tD0uly7Zv7ZxoyhGRfGNyWQSxQ2fimLWHlHM3sv9sO78TixZ/43YIdHKDuPEiWx7yQPY9myXX/9v9rzcvnteJ4q33i6KPa8TLSaT6/8DFx5Wh7//QKI4BBvFFGSJI7BG3DUnS/nz53jM5Zbj/d44Psxm/d8Luc94QoIoPv20sZ99vd9LafuO+5Cek8ZBEH6Gnus3PDWIyy67TIyNjRUjIyPFnj17iq+99ppYW1uruPyOHTtEAGJlZaXd8x06dBAXLVqkuN6FCxfEqqqq+seJEye437xfs2YN34ltzRr+bXpCEKmhdLHREg9GPmJinE/6vMchJsb5wqR24r90SRQXLuTb9p2puoSLuPM70Zq1R7QkDxDTsFkUBFHcP3pxw/YcRImoIUqsMkLCWw8rIK5olS72R5Y4BBvEfMgIAMfjrCQUHJfj/d7wPpQu+EoCRFp+40ZjPvuuCg6tmweC8EP8QrwsXLhQzMrKEn/66Sfx7bffFlu3bi1OmTJFcfmPPvpIDA0NdXr+hhtuEJ955hnF9WbNmiUCcHoEvHjxhNDwhCByBVfvjl19OB6j9HT3tjdnjnp0gOfitHGjKJZUiOLu/XziZce3onjLraIFgvgHEkUzLokd42tEq1rEQOFhcee9R0aK4pAhbgsCa0Ki+POsDfIiyvGCrSUUbC/I7n62HI+n3AXfnQim3vG5Izh4IlUE4Ud4TLw8++yzopxQsH0cPnxYdt333ntPbNKkiXjhwgXZ110VL0EbeZFOkErhZVemeLwdeVHC6LtjrYetGLt0SRSjo93fZny88kVFa1rg6acblrVaRfFEEZ+A6Xld/Tb6I0s04ZJ4asB96uNMTXW60JaCc3pL7rF5s3HiMzxcWwDU1OgTCkZE9RYvNmZqSu57xPvZnziRBAfR6NAjXnRVGz311FM4fPiw6qNTp06y69500024dOkS8vLyZF9v164dLl68iNOnT9s9X1xcjHbt2imOqWnTpggPD7d7BAWeaMro6y7VEt6udLDdH6+jqRZqFV9K7rDR0awaqlevhsoqQQBCOUuebaqU7sFW5CEJsVkKCctmM0tY/vhju8qUL+dkYUKUSpKzEpIhXGoqG7cbnZ/rqa5Wfk0UWXnyW2/pM34zwg05NlbdSdodLyPez/6QIdQHiCBU0OXzEhMTgxhHR1BO9u/fD5PJhLZt28q+fv311yMkJAQ7duzAkLreIEeOHEF+fj5uvvlml/YZ8Gh5OuitCpJO7EOHsoumKDa85o0u1RJG+aXwEBNjL8aM9rdIT2cXdLlmjhERTKQA7PX33mNl3hKSX8+tA/n2ZWMiNwUZUDxyo0cDy5cDoaEN+66rUrkFQL+umyDWFcQ4yVip11KXK4DxjwNFhayCJiYGOHgQePJJdRM0o6nvF6CB7f81LY0dZ709jCS0BIY75cilpc7POeKNGwiCCHQ8EfrZvXu3uHjxYnH//v1ibm6uuHr1ajEmJkYcNWpU/TIFBQXilVdeKX733Xf1z40fP17s0KGDuHPnTvH7778Xb775ZvHmm2/Wte+gqTayxei5a39I5lOqiDD6kZ5uf/wWLzZ+H47TA3LHV2nKQ8rZ+OoH5eqjnd+x6qG6JNxLEJTzVrSmE9WmVeSqljb/V75qSeFRLkSKL2KWmI8E0QL5/62eRGFrRIRr/wNXpo94p2JdndLVkw9FEI0Qnyfs7tu3T7zpppvEiIgIsVmzZmK3bt3El19+2S7f5fjx4yIAMcvmpHP+/HnxiSeeENu0aSO2aNFCHDx4sFhUVKRr30EpXvTCI3b8IZlPSUTJlZo6JlI6VgIpPebM0d6W48Ns1ieqbHNqXCmDHTyUCQU58ZK1RxSzvtMlIGQv5hJK+RrJAxr25SicsvZo7z8qSvxx4XbRhEsiIIqDsVm0QHASMBYI3OKFqyJKTXDoEch6q3pcKUf2l5wzgvBTfC5efEmjFy+8JaX+glo5te3zjp4rUiKn2t0vr++K44Xn6af1CRDpYuPK3b6W50vWHlH8+HNRNJlEKyBWoRXXdn+ZsUZej8oljNaP4TuuyI/SY/uMLLunBmOzUxn0H0gUfxo6h1u8cP3P1D7bct+HqCjnz4YrkUe9EUx/qfYjCD9Fz/WbehsFE0qusVJyqRHuuUaj1K9G7nnHv7Xyd3j27ejaK+US9emj7YAquZVK+QlaXYXl0OpzJAhA6zYQe/QE9v+I8jFPI3zlLM3NPvHPOOSukmmBJZeHoTUGkwmIbceWU+lPFAf7fKItSMNWpCIZOYhDEYoQhxwkY8d44OLnbyCkutw55waAiIYO1arExADvvKP+mbbtcVVok78jFQGUlLje20utf5YcZN1PEIZB4iVYsFjYxdZRuADsOUFQTi4NVNQSmh97TDth02JhzfliY50vPNKF6aWX5Lcjl+DsSjIwZ58joUMSMDgVHZ97DvjiXcVkZysEFCABOUiGKKdZk5PZxds2cZS315LGclemxCFhlf3QrDBjF1LYe5C0XmUmTNXyvYdkPr3KLF7MJ8bNZtYu4Lnn5Buc8jR7VNs27/paieqOYpggCEU81piR8DJad/2iaF9SGiwoNanr0oVvfbWyWLMZmDmTlQg7lj0nJDhHsly5Y67QaCAokZ/HRFTnzmy8gFOESeoTlI4MWGGuvz6mp9sEmMxmVn5sNwbO0nG15WJiYE5J1q7uX2iBOf1J1chKFTjtDpSaczriqQanevGE/QFBNFJIvAQL7nhPBDpy3aN5S2x5BIdaF19btHx0HBEE4Of9gOWS8jJWK1B8Cjiwn/1dWAgsWMAaCTpcvCsQiVmYja1IrX9OVrMOHco8YCQO7FfvTu04Bjn69wc2bEBaZDY2rbc46Yp6rXf4JdVSawFAa1SjJjzGGD8irYgk4KDuPIwULVQ8QH42rUsQfgqJl2CB5tMbyMwEZs9WX0avIZ+cQJJbRunOWo6EBGDDBqD7lfKvW63sar5sUYOwkC6469YBubk4MGQOysEM46JRjnmYhTwkYTDsowlOmvW119i+o6PZtpcuZGN2FDByY5Bj0ybggQeAAQOQNjUJeYsznbUeMrm9V5o+MpL94m6Ewh8jkrximCAIRQRRlLslCVx0tdQOJiwWIClJez79+PHgDktLx4EncXbzZs9cMDIznfNwEhOBRYuYWJBL7iytBI7lAxdrG9YpPsVEQ06W/H7mzIE4azZEiHZ3IdL00VBswhaw95eVpZCaYbHYJJwmAE3D7cdQXgpkvK48BjkkgWEbSdDzf5EGXFEhfxz1GDSuXctElRZr1jBhanc8XEzkJQjCJfRcv0m8BBPS3D4gX33TGMLS2dnAgAHay82Zw/JZPIUrF0FRBKrOAP/3PvDRh2yaRi3aERkJsaJCNndEStzthONon2jm16zSGC7WsrYFrVoAL7+s363WUSzz/l8AJlCk9dwVE7z7VRJLUlJvsH9vCMIP0HP9pmqjYMLodgKBCG9OD29Cr6voqUKREARg53bg6Sl8yysIFwAwQUQHnEAycjApI4X/ei8IQGuHk8bMmcA112iXjttiOx2TkqIv18p2SsiV42hL377O1VW2SCKrrAwYPjywbAYIohFDOS/BRmOfTw/k3B8puVQLQQCiorg2+Wp6kTH/+rQ0IDeXlSdPnAg8+CDfepJo4T3ec+YY91nNzGTVWWrCBQAWLgSmTPGfpF6CIDShyEsw4u7daiATyF4avCZ3osgaJHJM5dyYapBIk8vj4UESLTzNOBMSgBdecG+cEkqGjY77y8hgHbJ5k3ob6/eKIPwMirwQwUUge2nwTq2kp7OLvEpZtggB56ISkW1Jdj9goOSTooZjNZfW/0UQ2OtG/F8uXgTGj1cXLjExwLFjLMrTmG0GCCJAIfFCBB+B6qXBO7UiuSQriAErBIgAHirPwICBZiQlueHDpuaTooSSSPTG/yUzk21faapIorQU2L2b/R7IU40E0UihaiMieAm0sldXyt1lpnPykYh0ZNSXSesqNnM8ZhYLMHCgvvehVc7sqf8Lz1SRLbbl0WQzQBA+h0qlSbwQgYor5e4WCyzZOZg8vAgHK1jzQyvsL7Jc11+5vJbISFZCrMWMGcBVV/lOJOr1kQHszW/IZoAgfI6e6zdNGxGEP+HK1IrZjBxzCt6sGIFdSHESLgCHkaxSXguPcAGA225Tdx/2NHo6esu5KwfqVCNBNFKo2ogg/A2po7WOqRW3ck5dyWuR8JfqLb3JtHJJ2y4cd4IgfAOJF4LwR3SWu7uVc6onamGLP1Vv8R6AmBjgnXeUIymN2WaAIAIImjYiiCBAq6G1ah9K3qhFZKT93/40pcLT0Tsmhok0fxgvQRBuQZEXgggCpMrpoUPZ9Vsu51QxQMIbtdiwgW3AH6dUeA7AO+8AoaG+GR9BEIZC1UYEoRcDS32NrhpWamit2toqmEqFXToABEH4A1QqTeKF8BRyF0cXOw8buCk7XBJEwVQq7KoiDDRfIIIIMki8kHghPIGSCZoLF3gDN2UcjTlq4SklSRAENyReSLwQRqNlgqZjasXATRlPY4w++KWSJIjGB5nUEYTRaJUTa7rAeWRTxiOVCvvScM6bqHncSM+lp8P97pYEQRgJiReC4MHAzsPUxNiP8GslSRCEEiReCIIHAzsPUxNjP4KUJEEEJCReCIIHt1zgPLYpwl1ISRJEQELihSAAltOQnQ2sXct+OuY4SCZogLPq0GmTb+CmCHchJUkQAQmJF4LIzGTlPwMGAA88wH4mJbHnbTGw8zA1MfYTSEkSREBCpdJE48aVMlk/dtglXKQxe9wQhJ9APi8kXgge/NpwhfA6pCQJwqfouX5TY0ai8aKnTDYlxWvDInyE5HFDEITfQzkvROOFymQJgiACEhIvROOFymQJgiACEhIvROOFymQJgiACEhIvROOFymQJgiACEhIvROOGDFcIgiACDqo2Ioi0NCA1lcpkCYIgAgQSLwQBUJksQRBEAOGRaaPs7GwIgiD72Lt3r+J6KSkpTsuPHz/eE0MkCIIgCCJA8UjkpW/fvihy8MZ48cUXsWPHDvTu3Vt13bFjx2Lu3Ln1f7do0cITQyQIgiAIIkDxiHgJDQ1Fu3bt6v+ura3F1q1bMWnSJAhKZal1tGjRwm5dgiAIgiAIW7xSbfTJJ5+gvLwcY8aM0Vz2o48+QnR0NK655hpMnz4df/75pxdGSBAEQRBEoOCVhN333nsPgwYNQkJCgupyDzzwAC677DK0b98eBw4cwLPPPosjR44gMzNTcZ2amhrU1NTU/11dXW3YuAmCIAiC8D90iZfnnnsOr776quoyhw8fRteuXev/LigowP/+9z9s2LBBc/vjxo2r/7179+6Ii4vDbbfdhtzcXHTu3Fl2nfnz52POnDmc74AgCLegzssEQfgBgiiKIu/CpaWlKC8vV12mU6dOCA0Nrf973rx5WLp0KQoLCxESEqJrcOfOnUOrVq2wbds2DBo0SHYZuchLYmIiV0ttgiB0kJkJTJ5s34k7IYG5FJOZH0EQblJdXY2IiAiu67euyEtMTAxiYmK4lxdFEStXrsSoUaN0CxcA2L9/PwAgTqUxXtOmTdG0aVPd2yYIQgeZmcDQoYDjvU5hIXue3IgJgvAiHk3Y3blzJ44fP47HHnvM6bXCwkJ07doVe/bsAQDk5uZi3rx52LdvH/Ly8vDJJ59g1KhRuOWWW9CjRw9PDpMgCDUsFhZxkQvSSs+lp7PlCIIgvIBHxct7772Hvn372uXASNTW1uLIkSP11UShoaHYvn07br/9dnTt2hVPPfUUhgwZgn//+9+eHCJBEFrk5NhPFTkiisCJE2w5giAIL+DRaqM1a9YovpaUlATbdJvExETs2rXLk8MhCMIVHAwn3V6OIAjCTai3ERGYiCJQdQa4WAuEhgARYYCGASLhIio5Zy4tRxAE4SYkXojAo7QSOJbPhItEaAhweQcgpo3vxhWsJCezqqLCQvm8F0Fgrycne39sBEE0SrzisEsQhlFaCRzKtRcuAPv7UC57nTAWs5mVQwPO0S3p74wM8nshCMJrkHghAgdRZBEXNXLz5aMDhHukpbFy6Ph4++cTEqhMmiAIr0PTRkTgIOW4qFFTy5ZrTQaFhpOWBqSmksMuQRA+h8QLEThoCRe9yxH6MZuBlBRfj4IgiEYOTRsRgUMop0sz73IEQRBEQELihQgcIsK0hUnTurJpgiAIImgh8UIEDoLAyqHV6NyB/F4IgiCCHBIvRGAR0wa4qrNzBKZpCHuefF4IgiCCHkrYJQKPmDZAdGty2CUIgmikkHghAhNBoHJogiCIRgpNGxEEQRAEEVCQeCEIgiAIIqAg8UIQBEEQREBB4oUgCIIgiICCxAtBEARBEAEFiReCIAiCIAIKEi8EQRAEQQQUJF4IgiAIgggoSLwQBEEQBBFQBJ3DriiKAIDq6mofj4QgCIIgCF6k67Z0HVcj6MTLmTNnAACJiYk+HglBEARBEHo5c+YMIiIiVJcRRB6JE0BYrVacPHkSYWFhEBpxo77q6mokJibixIkTCA+nHkDuQsfTWOh4GgsdT2Oh42ksvMdTFEWcOXMG7du3h8mkntUSdJEXk8mEhIQEXw/DbwgPD6cvn4HQ8TQWOp7GQsfTWOh4GgvP8dSKuEhQwi5BEARBEAEFiReCIAiCIAIKEi9BStOmTTFr1iw0bdrU10MJCuh4GgsdT2Oh42ksdDyNxRPHM+gSdgmCIAiCCG4o8kIQBEEQREBB4oUgCIIgiICCxAtBEARBEAEFiReCIAiCIAIKEi+NiJqaGvTs2ROCIGD//v2+Hk5AkpeXh0cffRQdO3ZE8+bN0blzZ8yaNQsXL1709dAChjfffBNJSUlo1qwZbrrpJuzZs8fXQwpY5s+fjxtuuAFhYWFo27Yt7r33Xhw5csTXwwoKXnnlFQiCgPT0dF8PJaApLCzEgw8+iKioKDRv3hzdu3fH999/7/Z2Sbw0Ip555hm0b9/e18MIaH799VdYrVYsX74cv/zyCxYvXox33nkHzz//vK+HFhCsX78eU6dOxaxZs/DDDz/g2muvxaBBg1BSUuLroQUku3btwoQJE/Dtt9/iiy++QG1tLW6//XacO3fO10MLaPbu3Yvly5ejR48evh5KQFNZWYl+/fohJCQE//3vf3Ho0CEsXLgQbdq0cX/jItEo+M9//iN27dpV/OWXX0QA4o8//ujrIQUNr732mtixY0dfDyMguPHGG8UJEybU/22xWMT27duL8+fP9+GogoeSkhIRgLhr1y5fDyVgOXPmjNilSxfxiy++EPv37y9OnjzZ10MKWJ599lnxL3/5i0e2TZGXRkBxcTHGjh2LDz/8EC1atPD1cIKOqqoqREZG+noYfs/Fixexb98+DBw4sP45k8mEgQMH4ptvvvHhyIKHqqoqAKDPoxtMmDABd955p93nlHCNTz75BL1798awYcPQtm1b9OrVC++++64h2ybxEuSIoojRo0dj/Pjx6N27t6+HE3QcO3YMS5cuxeOPP+7rofg9ZWVlsFgsiI2NtXs+NjYWp06d8tGogger1Yr09HT069cP11xzja+HE5CsW7cOP/zwA+bPn+/roQQFv//+O95++2106dIF//vf//CPf/wDTz75JD744AO3t03iJUB57rnnIAiC6uPXX3/F0qVLcebMGUyfPt3XQ/ZreI+nLYWFhbjjjjswbNgwjB071kcjJwjGhAkTcPDgQaxbt87XQwlITpw4gcmTJ+Ojjz5Cs2bNfD2coMBqteK6667Dyy+/jF69emHcuHEYO3Ys3nnnHbe33cSA8RE+4KmnnsLo0aNVl+nUqRN27tyJb775xqmnRO/evTFy5EhDFHAwwHs8JU6ePIkBAwagb9++WLFihYdHFxxER0fDbDajuLjY7vni4mK0a9fOR6MKDiZOnIhPP/0UX375JRISEnw9nIBk3759KCkpwXXXXVf/nMViwZdffolly5ahpqYGZrPZhyMMPOLi4nDVVVfZPdetWzds3rzZ7W2TeAlQYmJiEBMTo7ncG2+8gX/+85/1f588eRKDBg3C+vXrcdNNN3lyiAEF7/EEWMRlwIABuP7667Fy5UqYTBTA5CE0NBTXX389duzYgXvvvRcAuzPbsWMHJk6c6NvBBSiiKGLSpEnYsmULsrOz0bFjR18PKWC57bbb8PPPP9s9N2bMGHTt2hXPPvssCRcX6Nevn1Pp/m+//YbLLrvM7W2TeAlyOnToYPd3q1atAACdO3emOzQXKCwsREpKCi677DIsWLAApaWl9a9R9ECbqVOn4uGHH0bv3r1x4403IiMjA+fOncOYMWN8PbSAZMKECVizZg22bt2KsLCw+tyhiIgING/e3MejCyzCwsKccoVatmyJqKgoyiFykSlTpqBv3754+eWXMXz4cOzZswcrVqwwJFpN4oUgdPDFF1/g2LFjOHbsmJP4E6lBuyb33XcfSktLMXPmTJw6dQo9e/bEtm3bnJJ4CT7efvttAEBKSord8ytXrtScBiUIT3PDDTdgy5YtmD59OubOnYuOHTsiIyMDI0eOdHvbgkhnXIIgCIIgAgiarCcIgiAIIqAg8UIQBEEQREBB4oUgCIIgiICCxAtBEARBEAEFiReCIAiCIAIKEi8EQRAEQQQUJF4IgiAIgggoSLwQBEEQBBFQkHghCIIgCCKgIPFCEARBEERAQeKFIAiCIIiAgsQLQRAEQRABxf8DRdbMg7BUMwEAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ]
    }
  ]
}